修复设备帅选的逻辑bug
This commit is contained in:
parent
14a0c60778
commit
56cc550134
|
@ -23,9 +23,9 @@ class DeviceListMixin(object):
|
|||
return device_list
|
||||
|
||||
|
||||
class WeatherStationDeviceListMixin(object):
|
||||
class WeatherStationListMixin(object):
|
||||
@staticmethod
|
||||
def get_device_list():
|
||||
def get_weather_station_list():
|
||||
if cache.get('device_list'):
|
||||
device_list = cache.get('device_list')
|
||||
else:
|
||||
|
|
|
@ -14,8 +14,8 @@ from django_filters.rest_framework import DjangoFilterBackend
|
|||
from rest_framework.permissions import IsAuthenticated
|
||||
from rest_framework.filters import SearchFilter, OrderingFilter
|
||||
from django.db.models import Q
|
||||
from counter.mixins.role import RoleMixin, DeviceListMixin, WeatherStationDeviceListMixin
|
||||
from ..models import Mosquito, MosqPost, DeviceTempLog, WeatherLog
|
||||
from counter.mixins.role import RoleMixin, DeviceListMixin, WeatherStationListMixin
|
||||
from ..models import Mosquito, MosqPost, DeviceTempLog, WeatherLog, WeatherStationInfo
|
||||
from .pagination import PostLimitOffsetPagination, DeviceLogHistoryPagination, WeatherlogHistoryPagination
|
||||
from .serializers import (
|
||||
MosqListSerializer,
|
||||
|
@ -106,7 +106,7 @@ class DeviceTempLogListAPIView(ListAPIView, RoleMixin, DeviceListMixin):
|
|||
return queryset
|
||||
|
||||
|
||||
class WeatherLogListAPIView(ListAPIView, RoleMixin, WeatherStationDeviceListMixin):
|
||||
class WeatherLogListAPIView(ListAPIView, RoleMixin, WeatherStationListMixin):
|
||||
serializer_class = WeatherLogSerializer
|
||||
permission_classes = [IsAuthenticated]
|
||||
filter_backends = (DjangoFilterBackend, filters.SearchFilter, filters.OrderingFilter)
|
||||
|
@ -121,12 +121,11 @@ class WeatherLogListAPIView(ListAPIView, RoleMixin, WeatherStationDeviceListMixi
|
|||
start = self.request.GET.get('start')
|
||||
end = self.request.GET.get('end')
|
||||
queryset = WeatherLog.objects.get_queryset().order_by('-data_time')
|
||||
queryset_info = WeatherStationInfo.objects.get_queryset().order_by('device_id')
|
||||
|
||||
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]
|
||||
device_ids = [query.device_id for query in queryset_info if query.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)
|
||||
|
|
Loading…
Reference in New Issue