mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2025-11-26 08:34:55 +00:00
Merge pull request #299 from KiwiTechLLC/ZBKBCK-49
added and modifid pagination
This commit is contained in:
46
base/pagination.py
Normal file
46
base/pagination.py
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
"""
|
||||||
|
web_admin pagination file
|
||||||
|
"""
|
||||||
|
# third party imports
|
||||||
|
from collections import OrderedDict
|
||||||
|
from rest_framework.pagination import PageNumberPagination
|
||||||
|
|
||||||
|
from account.utils import custom_response
|
||||||
|
from base.constants import NUMBER
|
||||||
|
|
||||||
|
|
||||||
|
class CustomPageNumberPagination(PageNumberPagination):
|
||||||
|
"""
|
||||||
|
custom paginator class
|
||||||
|
"""
|
||||||
|
# Set the desired page size
|
||||||
|
page_size = NUMBER['ten']
|
||||||
|
page_size_query_param = 'page_size'
|
||||||
|
# Set a maximum page size if needed
|
||||||
|
max_page_size = NUMBER['hundred']
|
||||||
|
|
||||||
|
def get_paginated_response(self, data):
|
||||||
|
"""
|
||||||
|
:param data: queryset to be paginated
|
||||||
|
:return: return a OrderedDict
|
||||||
|
"""
|
||||||
|
return custom_response(None, OrderedDict([
|
||||||
|
('count', self.page.paginator.count),
|
||||||
|
('data', data),
|
||||||
|
('current_page', self.page.number),
|
||||||
|
('total_pages', self.page.paginator.num_pages),
|
||||||
|
|
||||||
|
|
||||||
|
]))
|
||||||
|
|
||||||
|
def get_paginated_dict_response(self, data):
|
||||||
|
"""
|
||||||
|
:param data: queryset to be paginated
|
||||||
|
:return: return a simple dict obj
|
||||||
|
"""
|
||||||
|
return {
|
||||||
|
'count': self.page.paginator.count,
|
||||||
|
'data': data,
|
||||||
|
'current_page': self.page.number,
|
||||||
|
'total_pages': self.page.paginator.num_pages,
|
||||||
|
}
|
||||||
@ -1,18 +0,0 @@
|
|||||||
"""
|
|
||||||
web_admin pagination file
|
|
||||||
"""
|
|
||||||
# third party imports
|
|
||||||
from rest_framework.pagination import PageNumberPagination
|
|
||||||
|
|
||||||
from base.constants import NUMBER
|
|
||||||
|
|
||||||
|
|
||||||
class CustomPageNumberPagination(PageNumberPagination):
|
|
||||||
"""
|
|
||||||
custom paginator class
|
|
||||||
"""
|
|
||||||
# Set the desired page size
|
|
||||||
page_size = NUMBER['ten']
|
|
||||||
page_size_query_param = 'page_size'
|
|
||||||
# Set a maximum page size if needed
|
|
||||||
max_page_size = NUMBER['hundred']
|
|
||||||
@ -23,11 +23,11 @@ from django.http import HttpResponse
|
|||||||
|
|
||||||
# local imports
|
# local imports
|
||||||
from account.utils import custom_response, get_user_full_name
|
from account.utils import custom_response, get_user_full_name
|
||||||
from base.constants import PENDING, IN_PROGRESS, REJECTED, REQUESTED, COMPLETED, EXPIRED, DATE_FORMAT, TASK_STATUS
|
from base.constants import PENDING, IN_PROGRESS, REJECTED, REQUESTED, COMPLETED, EXPIRED, TASK_STATUS
|
||||||
from guardian.models import JuniorTask
|
from guardian.models import JuniorTask
|
||||||
from guardian.utils import upload_excel_file_to_alibaba
|
from guardian.utils import upload_excel_file_to_alibaba
|
||||||
from junior.models import JuniorPoints
|
from junior.models import JuniorPoints
|
||||||
from web_admin.pagination import CustomPageNumberPagination
|
from base.pagination import CustomPageNumberPagination
|
||||||
from web_admin.permission import AdminPermission
|
from web_admin.permission import AdminPermission
|
||||||
from web_admin.serializers.analytics_serializer import LeaderboardSerializer, UserCSVReportSerializer
|
from web_admin.serializers.analytics_serializer import LeaderboardSerializer, UserCSVReportSerializer
|
||||||
from web_admin.utils import get_dates
|
from web_admin.utils import get_dates
|
||||||
|
|||||||
Reference in New Issue
Block a user