# device status 页面重复设备 bug fixed

This commit is contained in:
xianfuxing 2020-09-01 11:32:35 +08:00
parent 791a753162
commit a05b4b9cb1
2 changed files with 10 additions and 3 deletions

View File

@ -15,7 +15,7 @@ from rest_framework.permissions import IsAuthenticated
from rest_framework.filters import SearchFilter, OrderingFilter from rest_framework.filters import SearchFilter, OrderingFilter
from mosquito.api.pagination import ( from mosquito.api.pagination import (
LatestDailyPagination, LatestDailyPagination,
PostPageNumberPagination, DeviceInfoListPagination,
DeviceLogListPagination, DeviceLogListPagination,
DeviceLogHistoryPagination DeviceLogHistoryPagination
) )
@ -73,12 +73,12 @@ class DeviceInfoListAPIView(ListAPIView, RoleMixin):
serializer_class = DeviceInfoSerializer serializer_class = DeviceInfoSerializer
permission_classes = [IsAuthenticated] permission_classes = [IsAuthenticated]
filter_backends = [SearchFilter, OrderingFilter] filter_backends = [SearchFilter, OrderingFilter]
pagination_class = PostPageNumberPagination pagination_class = DeviceInfoListPagination
search_fields = ['device_id', 'online'] search_fields = ['device_id', 'online']
def get_queryset(self, *args, **kwargs): def get_queryset(self, *args, **kwargs):
user_roles = self.get_role() user_roles = self.get_role()
queryset = DeviceInfo.objects.get_queryset().order_by('-online') queryset = DeviceInfo.objects.all().order_by('-last_offline_time')
if 'staff' in user_roles or 'manager' in user_roles: 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) queryset = queryset.filter(device_id__in=device_ids)

View File

@ -10,6 +10,13 @@ class PostPageNumberPagination(PageNumberPagination):
page_size = 10 page_size = 10
class DeviceInfoListPagination(PageNumberPagination):
page_size = 10
page_size_query_param = 'limit'
page_query_param = 'page'
max_page_size = 1000
class LatestDailyPagination(PageNumberPagination): class LatestDailyPagination(PageNumberPagination):
page_size = 7 page_size = 7
page_size_query_param = 'limit' page_size_query_param = 'limit'