From 37d191eef8685cc44b36bcecc1ea19a68dab086f Mon Sep 17 00:00:00 2001 From: jain Date: Tue, 29 Aug 2023 10:41:44 +0530 Subject: [PATCH 1/3] add message for blank search --- base/messages.py | 3 ++- junior/views.py | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/base/messages.py b/base/messages.py index 54c427f..5a6e2e8 100644 --- a/base/messages.py +++ b/base/messages.py @@ -111,7 +111,8 @@ ERROR_CODE = { "2080": "Can not add App version", "2081": "A junior can only be associated with a maximum of 3 guardian", # guardian code not exist - "2082": "Guardian code does not exist" + "2082": "Guardian code does not exist", + "2083": "Search should not be blank" } """Success message code""" diff --git a/junior/views.py b/junior/views.py index 5ca50e0..a560f4d 100644 --- a/junior/views.py +++ b/junior/views.py @@ -223,6 +223,8 @@ class AddJuniorAPIView(viewsets.ModelViewSet): junior.guardian_code.append(guardian.guardian_code) else: return "Max" + if junior.guardian_code_status and ('-' in junior.guardian_code_status): + junior.guardian_code_status.remove('-') if not junior.guardian_code_status: junior.guardian_code_status = [str(NUMBER['two'])] else: @@ -355,6 +357,8 @@ class JuniorTaskListAPIView(viewsets.ModelViewSet): try: status_value = self.request.GET.get('status') search = self.request.GET.get('search') + if search.strip() == '': + return custom_error_response(ERROR_CODE['2083'], response_status=status.HTTP_400_BAD_REQUEST) if search and str(status_value) == '0': # search with title and for all task list queryset = JuniorTask.objects.filter(junior__auth=request.user, From e2c84eb83d42db13ebcce8fea20c0684e79cef6f Mon Sep 17 00:00:00 2001 From: jain Date: Tue, 29 Aug 2023 11:49:59 +0530 Subject: [PATCH 2/3] search junior task --- junior/views.py | 35 +++++++++++++++-------------------- 1 file changed, 15 insertions(+), 20 deletions(-) diff --git a/junior/views.py b/junior/views.py index a560f4d..64aaffb 100644 --- a/junior/views.py +++ b/junior/views.py @@ -346,9 +346,19 @@ class JuniorTaskListAPIView(viewsets.ModelViewSet): """Junior task list""" serializer_class = TaskDetailsjuniorSerializer permission_classes = [IsAuthenticated] + filter_backends = (SearchFilter,) + search_fields = ['task_name', ] pagination_class = PageNumberPagination http_method_names = ('get',) + def get_queryset(self): + queryset = JuniorTask.objects.filter(junior__auth=self.request.user + ).prefetch_related('junior', 'junior__auth' + ).order_by('due_date', 'created_at') + + queryset = self.filter_queryset(queryset) + return queryset + def list(self, request, *args, **kwargs): """Junior task list status=0 @@ -356,29 +366,14 @@ class JuniorTaskListAPIView(viewsets.ModelViewSet): page=1""" try: status_value = self.request.GET.get('status') - search = self.request.GET.get('search') - if search.strip() == '': - return custom_error_response(ERROR_CODE['2083'], response_status=status.HTTP_400_BAD_REQUEST) - if search and str(status_value) == '0': - # search with title and for all task list - queryset = JuniorTask.objects.filter(junior__auth=request.user, - task_name__icontains=search).order_by('due_date', 'created_at') - elif search and str(status_value) != '0': - # search with title and fetch task list with status wise - queryset = JuniorTask.objects.filter(junior__auth=request.user, task_name__icontains=search, - task_status=status_value).order_by('due_date', 'created_at') - if search is None and str(status_value) == '0': - # fetch all task list - queryset = JuniorTask.objects.filter(junior__auth=request.user).order_by('due_date', 'created_at') - elif search is None and str(status_value) != '0': - # fetch task list with status wise - queryset = JuniorTask.objects.filter(junior__auth=request.user, - task_status=status_value).order_by('due_date','created_at') + queryset = self.get_queryset() + if status_value and status_value != '0': + queryset = queryset.filter(task_status=status_value) paginator = self.pagination_class() # use Pagination paginated_queryset = paginator.paginate_queryset(queryset, request) - # use TaskDetailsSerializer serializer - serializer = TaskDetailsjuniorSerializer(paginated_queryset, many=True) + # use TaskDetails juniorSerializer serializer + serializer = self.serializer_class(paginated_queryset, many=True) return custom_response(None, serializer.data, response_status=status.HTTP_200_OK) except Exception as e: return custom_error_response(str(e), response_status=status.HTTP_400_BAD_REQUEST) From a8d291474a7614ac66ece27b4c5c908e4da25ac3 Mon Sep 17 00:00:00 2001 From: jain Date: Tue, 29 Aug 2023 11:52:47 +0530 Subject: [PATCH 3/3] search junior task --- base/messages.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/base/messages.py b/base/messages.py index 5a6e2e8..54c427f 100644 --- a/base/messages.py +++ b/base/messages.py @@ -111,8 +111,7 @@ ERROR_CODE = { "2080": "Can not add App version", "2081": "A junior can only be associated with a maximum of 3 guardian", # guardian code not exist - "2082": "Guardian code does not exist", - "2083": "Search should not be blank" + "2082": "Guardian code does not exist" } """Success message code"""