mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2025-07-17 02:45:08 +00:00
add current page and total page in task list API
This commit is contained in:
@ -186,12 +186,13 @@ def send_support_email(name, sender, subject, message):
|
|||||||
return name
|
return name
|
||||||
|
|
||||||
|
|
||||||
def custom_response(detail, data=None, response_status=status.HTTP_200_OK, count=None):
|
def custom_response(detail, data=None, total_pages=None, current_page=None, response_status=status.HTTP_200_OK, count=None):
|
||||||
"""Custom response code"""
|
"""Custom response code"""
|
||||||
if not data:
|
if not data:
|
||||||
"""when data is none"""
|
"""when data is none"""
|
||||||
data = None
|
data = None
|
||||||
return Response({"data": data, "message": detail, "status": "success", "code": response_status, "count": count})
|
return Response({"data": data, "message": detail, "total_pages":total_pages, "current_page":current_page,
|
||||||
|
"status": "success", "code": response_status, "count": count})
|
||||||
|
|
||||||
|
|
||||||
def custom_error_response(detail, response_status):
|
def custom_error_response(detail, response_status):
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
"""Views of Guardian"""
|
"""Views of Guardian"""
|
||||||
|
import math
|
||||||
|
|
||||||
# django imports
|
# django imports
|
||||||
# Import IsAuthenticated
|
# Import IsAuthenticated
|
||||||
@ -154,15 +155,19 @@ class TaskListAPIView(viewsets.ModelViewSet):
|
|||||||
def list(self, request, *args, **kwargs):
|
def list(self, request, *args, **kwargs):
|
||||||
"""Create guardian profile"""
|
"""Create guardian profile"""
|
||||||
status_value = self.request.GET.get('status')
|
status_value = self.request.GET.get('status')
|
||||||
|
current_page = self.request.GET.get('page')
|
||||||
queryset = self.get_queryset()
|
queryset = self.get_queryset()
|
||||||
if status_value and status_value != '0':
|
if status_value and status_value != '0':
|
||||||
queryset = queryset.filter(task_status=status_value)
|
queryset = queryset.filter(task_status=status_value)
|
||||||
paginator = self.pagination_class()
|
paginator = self.pagination_class()
|
||||||
|
total_count = len(queryset)
|
||||||
|
total_pages = math.ceil(total_count/10)
|
||||||
# use Pagination
|
# use Pagination
|
||||||
paginated_queryset = paginator.paginate_queryset(queryset, request)
|
paginated_queryset = paginator.paginate_queryset(queryset, request)
|
||||||
# use TaskDetailsSerializer serializer
|
# use TaskDetailsSerializer serializer
|
||||||
serializer = self.serializer_class(paginated_queryset, many=True)
|
serializer = self.serializer_class(paginated_queryset, many=True)
|
||||||
return custom_response(None, serializer.data, response_status=status.HTTP_200_OK)
|
return custom_response(None, serializer.data, total_pages=total_pages, current_page=current_page,
|
||||||
|
response_status=status.HTTP_200_OK)
|
||||||
|
|
||||||
|
|
||||||
class CreateTaskAPIView(viewsets.ModelViewSet):
|
class CreateTaskAPIView(viewsets.ModelViewSet):
|
||||||
|
@ -12,6 +12,7 @@ import datetime
|
|||||||
import requests
|
import requests
|
||||||
|
|
||||||
from rest_framework.viewsets import GenericViewSet, mixins
|
from rest_framework.viewsets import GenericViewSet, mixins
|
||||||
|
import math
|
||||||
"""Django app import"""
|
"""Django app import"""
|
||||||
from drf_yasg.utils import swagger_auto_schema
|
from drf_yasg.utils import swagger_auto_schema
|
||||||
from drf_yasg import openapi
|
from drf_yasg import openapi
|
||||||
@ -366,15 +367,19 @@ class JuniorTaskListAPIView(viewsets.ModelViewSet):
|
|||||||
page=1"""
|
page=1"""
|
||||||
try:
|
try:
|
||||||
status_value = self.request.GET.get('status')
|
status_value = self.request.GET.get('status')
|
||||||
|
current_page = self.request.GET.get('page')
|
||||||
queryset = self.get_queryset()
|
queryset = self.get_queryset()
|
||||||
if status_value and status_value != '0':
|
if status_value and status_value != '0':
|
||||||
queryset = queryset.filter(task_status=status_value)
|
queryset = queryset.filter(task_status=status_value)
|
||||||
paginator = self.pagination_class()
|
paginator = self.pagination_class()
|
||||||
|
total_count = len(queryset)
|
||||||
|
total_pages = math.ceil(total_count / 10)
|
||||||
# use Pagination
|
# use Pagination
|
||||||
paginated_queryset = paginator.paginate_queryset(queryset, request)
|
paginated_queryset = paginator.paginate_queryset(queryset, request)
|
||||||
# use TaskDetails juniorSerializer serializer
|
# use TaskDetails juniorSerializer serializer
|
||||||
serializer = self.serializer_class(paginated_queryset, many=True)
|
serializer = self.serializer_class(paginated_queryset, many=True)
|
||||||
return custom_response(None, serializer.data, response_status=status.HTTP_200_OK)
|
return custom_response(None, serializer.data, total_pages=total_pages, current_page=current_page,
|
||||||
|
response_status=status.HTTP_200_OK)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return custom_error_response(str(e), response_status=status.HTTP_400_BAD_REQUEST)
|
return custom_error_response(str(e), response_status=status.HTTP_400_BAD_REQUEST)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user