diff --git a/apps/api/views/api_views.py b/apps/api/views/api_views.py index d072585..00ce78b 100644 --- a/apps/api/views/api_views.py +++ b/apps/api/views/api_views.py @@ -10,6 +10,7 @@ from rest_framework.authtoken.models import Token from apps.account.models import User from apps.api.models import Comment, AppVersion from apps.api.serializers import CommentSerializer, AppVersionSerializer +from utils.pagination import StandardResultsSetPagination class HomeSerializer(serializers.Serializer): token = serializers.CharField() @@ -65,6 +66,7 @@ class CommentListAPIView(ListAPIView): serializer_class = CommentSerializer permission_classes = [AllowAny] ordering = ['order', '-created_at'] # Order by order field first, then by newest + pagination_class = StandardResultsSetPagination @swagger_auto_schema( operation_description="List comments ordered by 'order' then '-created_at'", @@ -87,6 +89,7 @@ class AppVersionListAPIView(ListAPIView): queryset = AppVersion.objects.all().order_by('-created_at') serializer_class = AppVersionSerializer permission_classes = [AllowAny] + pagination_class = StandardResultsSetPagination @swagger_auto_schema( operation_description="List all app versions with fields.", responses={ diff --git a/apps/certificate/views.py b/apps/certificate/views.py index 7cbbbc3..35f0cb9 100644 --- a/apps/certificate/views.py +++ b/apps/certificate/views.py @@ -4,6 +4,7 @@ from drf_yasg import openapi from apps.certificate.models import Certificate from apps.certificate.serializers import CertificateRequestSerializer, CertificateSerializer +from utils.pagination import StandardResultsSetPagination @@ -32,6 +33,7 @@ class CertificateRequestView(generics.CreateAPIView): class UserCertificatesListView(generics.ListAPIView): serializer_class = CertificateSerializer permission_classes = [permissions.IsAuthenticated] + pagination_class = StandardResultsSetPagination @swagger_auto_schema( operation_description="Get list of user's certificates", diff --git a/apps/course/views/professor.py b/apps/course/views/professor.py index 4b51193..287b58c 100644 --- a/apps/course/views/professor.py +++ b/apps/course/views/professor.py @@ -14,6 +14,7 @@ from apps.course.serializers import ( ProfessorDetailSerializer, ProfessorListSerializer, ) +from utils.pagination import StandardResultsSetPagination UserModel = get_user_model() @@ -24,6 +25,7 @@ class ProfessorListAPIView(ListAPIView): serializer_class = ProfessorListSerializer filter_backends = [SearchFilter] search_fields = ['fullname', 'email'] + pagination_class = StandardResultsSetPagination @swagger_auto_schema( operation_description='دریافت فهرست استادها به همراه تعداد دوره‌ها و درس‌های فعال هر استاد.', @@ -118,6 +120,7 @@ class ProfessorCourseListAPIView(ListAPIView): serializer_class = CourseListSerializer filter_backends = [SearchFilter] search_fields = ['title', 'category__name'] + pagination_class = StandardResultsSetPagination @swagger_auto_schema( operation_description='دریافت فهرست دوره‌های فعال یک استاد مشخص‌شده با اسلاگ.', diff --git a/apps/dobodbi_calendar/views.py b/apps/dobodbi_calendar/views.py index df97681..5a1dac7 100644 --- a/apps/dobodbi_calendar/views.py +++ b/apps/dobodbi_calendar/views.py @@ -18,11 +18,12 @@ from apps.account.models import User from apps.dobodbi_calendar.models import CalendarOccasions from apps.dobodbi_calendar.serializer import CalendarSerializer from utils.config_getter import get_config +from utils.pagination import StandardResultsSetPagination class CalendarList(ListAPIView): serializer_class = CalendarSerializer - pagination_class = None + pagination_class = StandardResultsSetPagination permission_classes = (AllowAny,) diff --git a/apps/hadis/views/category.py b/apps/hadis/views/category.py index 2cca302..17ebe7b 100644 --- a/apps/hadis/views/category.py +++ b/apps/hadis/views/category.py @@ -188,6 +188,7 @@ class HadisCategoryTreeNormalView(ListAPIView): with their nested children, and uses the project's default pagination. """ serializer_class = HadisCategoryTreeSerializer + pagination_class = StandardResultsSetPagination @hadis_category_tree_swagger def get(self, request, *args, **kwargs): @@ -291,6 +292,7 @@ class CategoriesBySectView(ListAPIView): API view to list HadisCategories filtered by sect_type """ serializer_class = CategorySerializer + pagination_class = StandardResultsSetPagination def get_queryset(self): sect_type = self.kwargs.get('sect_type') diff --git a/apps/hadis/views/reference.py b/apps/hadis/views/reference.py index 18bb2f0..e202a1d 100644 --- a/apps/hadis/views/reference.py +++ b/apps/hadis/views/reference.py @@ -48,6 +48,7 @@ class BookReferencesView(ListAPIView): class BookAuthorView(ListAPIView): queryset = BookAuthor.objects.all() serializer_class = BookAuthorSerializer + pagination_class = StandardResultsSetPagination @book_authors_list_swagger diff --git a/apps/hadis/views/transmitter.py b/apps/hadis/views/transmitter.py index 51e1f80..46be469 100644 --- a/apps/hadis/views/transmitter.py +++ b/apps/hadis/views/transmitter.py @@ -54,6 +54,7 @@ class TransmitterDetailView(RetrieveAPIView): class TransmitterOpinionView(ListAPIView): serializer_class = TransmitterOpinionSerializer + pagination_class = StandardResultsSetPagination @transmitter_opinion_swagger def get(self, request, *args, **kwargs): @@ -75,6 +76,7 @@ class TransmitterOpinionView(ListAPIView): class TransmitterOriginalTextView(ListAPIView): serializer_class = TransmitterOriginalTextSerializer + pagination_class = StandardResultsSetPagination @transmitter_original_text_swagger def get(self, request, *args, **kwargs): diff --git a/apps/library/views.py b/apps/library/views.py index 52fedcb..bde0fc4 100644 --- a/apps/library/views.py +++ b/apps/library/views.py @@ -8,6 +8,7 @@ from drf_yasg.utils import swagger_auto_schema from drf_yasg import openapi from apps.library.pagination import NoPagination +from utils.pagination import StandardResultsSetPagination from apps.library.models import * from apps.library.serializers import * from apps.library.doc import ( @@ -215,6 +216,7 @@ class DownloadedBooksListView(ListAPIView): permission_classes = (IsAuthenticated,) filter_backends = [SearchFilter] search_fields = ['title', 'summary', 'publisher', 'isbn'] + pagination_class = StandardResultsSetPagination @swagger_auto_schema( operation_id="list_downloaded_books",