diff --git a/apps/mosquito/api/pagination.py b/apps/mosquito/api/pagination.py index bf94af3..aa39058 100644 --- a/apps/mosquito/api/pagination.py +++ b/apps/mosquito/api/pagination.py @@ -43,3 +43,17 @@ class WeatherlogHistoryPagination(PageNumberPagination): page_size_query_param = 'limit' page_query_param = 'page' max_page_size = 1000 + + +class DeviceInfoPagination(PageNumberPagination): + page_size = 100 + page_size_query_param = 'limit' + page_query_param = 'page' + max_page_size = 1000 + + +class WeatherStationInfoPagination(PageNumberPagination): + page_size = 100 + page_size_query_param = 'limit' + page_query_param = 'page' + max_page_size = 1000 \ No newline at end of file diff --git a/apps/mosquito/api/views.py b/apps/mosquito/api/views.py index a684157..15b484b 100644 --- a/apps/mosquito/api/views.py +++ b/apps/mosquito/api/views.py @@ -16,7 +16,13 @@ from rest_framework.filters import SearchFilter, OrderingFilter from django.db.models import Q from counter.mixins.role import RoleMixin, DeviceListMixin, WeatherStationListMixin from ..models import Mosquito, MosqPost, DeviceTempLog, WeatherLog, WeatherStationInfo, DeviceInfo -from .pagination import PostLimitOffsetPagination, DeviceLogHistoryPagination, WeatherlogHistoryPagination +from .pagination import ( + PostLimitOffsetPagination, + DeviceLogHistoryPagination, + WeatherlogHistoryPagination, + DeviceInfoPagination, + WeatherStationInfoPagination, +) from .serializers import ( MosqListSerializer, MosqPostListSerializer, @@ -157,11 +163,11 @@ class WeatherLogListAPIView(ListAPIView, RoleMixin, WeatherStationListMixin): return queryset -class WeatherStationInfoAPIView(ListAPIView, RoleMixin, WeatherStationListMixin): +class WeatherStationInfoAPIView(ListAPIView, RoleMixin): serializer_class = WeatherStationInfoSerializer permission_classes = [IsAuthenticated] filter_backends = [SearchFilter, OrderingFilter] - pagination_class = PostLimitOffsetPagination + pagination_class = WeatherStationInfoPagination search_fields = ['name', 'device_id'] def get_queryset(self, *args, **kwargs): @@ -177,11 +183,11 @@ class WeatherStationInfoAPIView(ListAPIView, RoleMixin, WeatherStationListMixin) return queryset_list -class DeviceInfoAPIView(ListAPIView, RoleMixin, WeatherStationListMixin): +class DeviceInfoAPIView(ListAPIView, RoleMixin): serializer_class = DeviceInfoSerializer permission_classes = [IsAuthenticated] filter_backends = [SearchFilter, OrderingFilter] - pagination_class = PostLimitOffsetPagination + pagination_class = DeviceInfoPagination search_fields = ['name', 'device_id'] def get_queryset(self, *args, **kwargs):