diff --git a/apps/mosquito/api/views.py b/apps/mosquito/api/views.py index 01d06b0..64750ec 100644 --- a/apps/mosquito/api/views.py +++ b/apps/mosquito/api/views.py @@ -117,6 +117,7 @@ class WeatherLogListAPIView(ListAPIView, RoleMixin, DeviceListMixin): def get_queryset(self, *args, **kwargs): user_roles = self.get_role() + device = self.request.GET.get('device') start = self.request.GET.get('start') end = self.request.GET.get('end') queryset = WeatherLog.objects.get_queryset().order_by('-data_time') @@ -125,6 +126,15 @@ class WeatherLogListAPIView(ListAPIView, RoleMixin, DeviceListMixin): 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: + # device_id or device_name + qs = queryset.filter(device_id__icontains=device) + if qs.count() > 0: + queryset = qs + else: + qs = WeatherLog.objects.filter(device_name__contains=device) + device_ids = [device.device_id for device in qs] + queryset = queryset.filter(device_id__in=device_ids) last_day = self.request.GET.get('last_day') if last_day == '1': t = datetime.now().replace(tzinfo=pytz.timezone('UTC')) - timedelta(days=1)