modified pagination in task list and junior task list api

This commit is contained in:
abutalib-kiwi
2023-09-05 13:54:58 +05:30
parent aeaa7d7ab8
commit 5524eeed64
5 changed files with 32 additions and 36 deletions

View File

@ -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):