From 63606ea1a7b58cd88bd97f35a2c4a998611af680 Mon Sep 17 00:00:00 2001 From: vijay-huang Date: Thu, 6 Oct 2022 12:06:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=90=84=E4=B8=AA=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E7=9A=84=E7=88=B6=E7=BB=84=E7=BB=87=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/counter/api/views.py | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/apps/counter/api/views.py b/apps/counter/api/views.py index 5592350..c2658be 100644 --- a/apps/counter/api/views.py +++ b/apps/counter/api/views.py @@ -46,7 +46,10 @@ class DeviceLogListAPIView(ListAPIView, RoleMixin, DeviceListMixin): 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] + child = self.request.user.get_child() + device_ids = [query.device_id + for query in device_list + if query.org == self.request.user.org or query.org.id in child] queryset = queryset.filter(device_id__in=device_ids) if device: # device_id or device_name @@ -158,8 +161,14 @@ class LatestStatisticAPIView(APIView, RoleMixin): user_roles = self.get_role() 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] + #device_ids = [query.device_id for query in queryset if query.org == self.request.user.org] + #queryset = queryset.filter(device_id__in=device_ids) + child = self.request.user.get_child() + device_ids = [query.device_id + for query in queryset + if query.org == self.request.user.org or query.org.id in child] queryset = queryset.filter(device_id__in=device_ids) + return queryset @@ -199,7 +208,11 @@ class LatestDailyListAPIView(ListAPIView, RoleMixin, DeviceListMixin): results = resp.data['results'] 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] + #device_ids = [device.device_id for device in devices if device.org == self.request.user.org] + child = self.request.user.get_child() + device_ids = [query.device_id + for query in devices + if query.org == self.request.user.org or query.org.id in child] device_daily_qs = DevicePostStatistic.objects.filter(device_id__in=device_ids) for item in results: date = item['date'] @@ -231,7 +244,11 @@ class DeviceDailyListAPIView(ListAPIView, RoleMixin, DeviceListMixin): 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] + #device_ids = [device.device_id for device in devices if device.org == self.request.user.org] + child = self.request.user.get_child() + device_ids = [query.device_id + for query in devices + if query.org == self.request.user.org or query.org.id in child] queryset = queryset.filter(device_id__in=device_ids) if device_id: