From 80e21ea9ddabc49f82ba2221edb83a26600ea18f Mon Sep 17 00:00:00 2001 From: sangeethailango Date: Thu, 2 Jan 2025 20:20:00 +0530 Subject: [PATCH] Add filter --- apiserver/plane/app/serializers/workspace.py | 9 ++------- .../plane/app/views/workspace/recent_visit.py | 17 ++++++++++++----- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/apiserver/plane/app/serializers/workspace.py b/apiserver/plane/app/serializers/workspace.py index 5fee459e42..ad45cf1a82 100644 --- a/apiserver/plane/app/serializers/workspace.py +++ b/apiserver/plane/app/serializers/workspace.py @@ -151,7 +151,6 @@ class IssueRecentVisitSerializer(serializers.ModelSerializer): def get_project_identifier(self, obj): project = obj.project - project = Project.objects.get(id=project.id) return project.identifier if project else None class ProjectMemberSerializer(BaseSerializer): @@ -169,7 +168,7 @@ class ProjectRecentVisitSerializer(serializers.ModelSerializer): fields = ["id", "name", "logo_props", "project_members", "identifier"] def get_project_members(self, obj): - members = ProjectMember.objects.filter(project_id=obj.id) + members = ProjectMember.objects.filter(project_id=obj.id).select_related('member') serializer = ProjectMemberSerializer(members, many=True) return serializer.data @@ -183,15 +182,11 @@ class PageRecentVisitSerializer(serializers.ModelSerializer): fields = ["id", "name", "logo_props", "project_id", "owned_by", "project_identifier"] def get_project_id(self, obj): - project = ( - obj.projects.first() - ) - return project.id if project else None + return obj.project_id if hasattr(obj, 'project_id') else obj.projects.values_list('id', flat=True).first() def get_project_identifier(self, obj): project = obj.projects.first() - project = Project.objects.get(id=project.id) return project.identifier if project else None def get_entity_model_and_serializer(entity_type): diff --git a/apiserver/plane/app/views/workspace/recent_visit.py b/apiserver/plane/app/views/workspace/recent_visit.py index 32fbc1b819..04742666e3 100644 --- a/apiserver/plane/app/views/workspace/recent_visit.py +++ b/apiserver/plane/app/views/workspace/recent_visit.py @@ -17,8 +17,15 @@ class UserRecentVisitViewSet(BaseViewSet): @allow_permission([ROLE.ADMIN, ROLE.MEMBER, ROLE.GUEST], level="WORKSPACE") def list(self, request, slug): - user_recent_visits = UserRecentVisit.objects.filter(workspace__slug=slug) - - serializer = WorkspaceRecentVisitSerializer(user_recent_visits, many=True) - - return Response(serializer.data, status=status.HTTP_200_OK) + user_recent_visits = UserRecentVisit.objects.filter(workspace__slug=slug) + + entity_name = request.query_params.get("entity_name") + + if entity_name: + user_recent_visits = user_recent_visits.filter(entity_name=entity_name)[:10] + + user_recent_visits = user_recent_visits[:10] + + serializer = WorkspaceRecentVisitSerializer(user_recent_visits, many=True) + return Response(serializer.data, status=status.HTTP_200_OK) +