diff --git a/apps/counter/api/views.py b/apps/counter/api/views.py index 1dc73e4..1de74c4 100644 --- a/apps/counter/api/views.py +++ b/apps/counter/api/views.py @@ -33,15 +33,15 @@ class DeviceLogListAPIView(ListAPIView, RoleMixin, DeviceListMixin): def get_queryset(self, *args, **kwargs): user_roles = self.get_role() - queryset_list = DeviceCount.objects.get_queryset().order_by('-data_time') - if 'staff' in user_roles or 'admin' in user_roles: + queryset = DeviceCount.objects.get_queryset().order_by('-data_time') + if 'staff' in user_roles or 'manager' in user_roles: device_list = self.get_device_list() device_ids = [query.device_id for query in device_list if query.org == self.request.user.org] - queryset_list = queryset_list.filter(device_id__in=device_ids) + queryset = queryset.filter(device_id__in=device_ids) device_id = self.request.GET.get('device_id') if device_id: - queryset_list = queryset_list.filter(device_id__icontains=device_id) - return queryset_list + queryset = queryset.filter(device_id__icontains=device_id) + return queryset class DeviceInfoListAPIView(ListAPIView, RoleMixin): @@ -53,19 +53,19 @@ class DeviceInfoListAPIView(ListAPIView, RoleMixin): def get_queryset(self, *args, **kwargs): user_roles = self.get_role() - queryset_list = DeviceInfo.objects.get_queryset().order_by('-online') - if 'staff' in user_roles or 'admin' in user_roles: - device_ids = [query.device_id for query in queryset_list if query.org == self.request.user.org] - queryset_list = queryset_list.filter(device_id__in=device_ids) + queryset = DeviceInfo.objects.get_queryset().order_by('-online') + if 'staff' in user_roles or 'manager' in user_roles: + device_ids = [query.device_id for query in queryset if query.org == self.request.user.org] + queryset = queryset.filter(device_id__in=device_ids) device_id = self.request.GET.get('device_id') status = self.request.GET.get('status') if device_id: - queryset_list = queryset_list.filter(device_id__icontains=device_id) + queryset = queryset.filter(device_id__icontains=device_id) if status: - queryset_list = queryset_list.filter(online=int(status)) - return queryset_list + queryset = queryset.filter(online=int(status)) + return queryset class DeviceLogStatisticAPIView(APIView): @@ -138,15 +138,15 @@ class DeviceLogHistoryListAPIView(ListAPIView, RoleMixin, DeviceListMixin): def get_queryset(self, *args, **kwargs): user_roles = self.get_role() - queryset_list = DevicePostStatistic.objects.get_queryset().order_by('-date') - - if 'staff' in user_roles or 'admin' in user_roles: - device_list = self.get_device_list() - device_ids = [query.device_id for query in device_list if query.org == self.request.user.org] - queryset_list = queryset_list.filter(device_id__in=device_ids) device_id = self.request.GET.get('device_id') + queryset = DevicePostStatistic.objects.get_queryset().order_by('-date') + + if 'staff' in user_roles or 'manager' in user_roles: + devices = self.get_device_list() + device_ids = [device.device_id for device in devices if device.org == self.request.user.org] + queryset = queryset.filter(device_id__in=device_ids) if device_id: - queryset_list = queryset_list.filter(device_id__icontains=device_id) + queryset = queryset.filter(device_id__icontains=device_id) - return queryset_list + return queryset diff --git a/apps/counter/mixins/role.py b/apps/counter/mixins/role.py index 94b3792..b28afbc 100644 --- a/apps/counter/mixins/role.py +++ b/apps/counter/mixins/role.py @@ -11,6 +11,7 @@ class RoleMixin(object): class DeviceListMixin(object): + @staticmethod def get_device_list(self): if cache.has_key('device_list'): device_list = cache.get('device_list') diff --git a/apps/counter/models.py b/apps/counter/models.py index 431f50f..3433ea9 100644 --- a/apps/counter/models.py +++ b/apps/counter/models.py @@ -7,7 +7,7 @@ # * Remove `managed = False` lines if you wish to allow Django to create, modify, and delete the table # Feel free to rename the models, but don't rename db_table values or field names. from django.db import models -from mosquito.models import DeviceInfo as DeviceInfo2 +from mosquito.models import DeviceInfo as CelexDeviceInfo class DeviceCount(models.Model): @@ -29,9 +29,9 @@ class DeviceCount(models.Model): @property def org(self): try: - device_info2 = DeviceInfo2.objects.get(device_id=self.device_id) - return device_info2.org - except DeviceInfo2.DoesNotExist: + celex_device = CelexDeviceInfo.objects.get(device_id=self.device_id) + return celex_device.org + except CelexDeviceInfo.DoesNotExist: raise def __str__(self): @@ -63,9 +63,9 @@ class DeviceInfo(models.Model): @property def org(self): try: - device_info2 = DeviceInfo2.objects.get(device_id=self.device_id) - return device_info2.org - except DeviceInfo2.DoesNotExist: + celex_device = CelexDeviceInfo.objects.get(device_id=self.device_id) + return celex_device.org + except CelexDeviceInfo.DoesNotExist: raise def __str__(self):