mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2025-11-26 16:44:54 +00:00
modified pagination in task list and junior task list api
This commit is contained in:
@ -17,6 +17,7 @@ from base.constants import guardian_code_tuple
|
||||
from rest_framework.filters import SearchFilter
|
||||
from django.utils import timezone
|
||||
|
||||
from base.pagination import CustomPageNumberPagination
|
||||
# Import guardian's model,
|
||||
# Import junior's model,
|
||||
# Import account's model,
|
||||
@ -147,8 +148,8 @@ class TaskListAPIView(viewsets.ModelViewSet):
|
||||
|
||||
def get_queryset(self):
|
||||
queryset = JuniorTask.objects.filter(guardian__user=self.request.user
|
||||
).prefetch_related('junior', 'junior__auth'
|
||||
).order_by('due_date', 'created_at')
|
||||
).select_related('junior', 'junior__auth'
|
||||
).order_by('due_date', 'created_at')
|
||||
|
||||
queryset = self.filter_queryset(queryset)
|
||||
return queryset
|
||||
@ -156,23 +157,19 @@ class TaskListAPIView(viewsets.ModelViewSet):
|
||||
def list(self, request, *args, **kwargs):
|
||||
"""Create guardian profile"""
|
||||
status_value = self.request.GET.get('status')
|
||||
current_page = self.request.GET.get('page')
|
||||
junior = self.request.GET.get('junior')
|
||||
queryset = self.get_queryset()
|
||||
task_status = task_status_fun(status_value)
|
||||
if status_value and not junior:
|
||||
if status_value:
|
||||
queryset = queryset.filter(task_status__in=task_status)
|
||||
elif status_value and junior:
|
||||
queryset = queryset.filter(task_status__in=task_status,junior=int(junior))
|
||||
paginator = self.pagination_class()
|
||||
total_count = len(queryset)
|
||||
total_pages = math.ceil(total_count/10)
|
||||
if junior:
|
||||
queryset = queryset.filter(junior=int(junior))
|
||||
paginator = CustomPageNumberPagination()
|
||||
# use Pagination
|
||||
paginated_queryset = paginator.paginate_queryset(queryset, request)
|
||||
# use TaskDetailsSerializer serializer
|
||||
serializer = self.serializer_class(paginated_queryset, many=True)
|
||||
return custom_response(None, serializer.data, total_pages=total_pages, current_page=current_page,
|
||||
response_status=status.HTTP_200_OK)
|
||||
return paginator.get_paginated_response(serializer.data)
|
||||
|
||||
|
||||
class CreateTaskAPIView(viewsets.ModelViewSet):
|
||||
|
||||
Reference in New Issue
Block a user