From a6318d5ff0d307b4f062e41ba05340dcb41185d3 Mon Sep 17 00:00:00 2001 From: NarayanBavisetti Date: Tue, 28 Jan 2025 18:14:22 +0530 Subject: [PATCH 1/2] chore: delete the user recent visits --- apiserver/plane/app/views/cycle/base.py | 8 ++++++++ apiserver/plane/app/views/issue/base.py | 8 ++++++++ apiserver/plane/app/views/module/base.py | 8 ++++++++ apiserver/plane/app/views/page/base.py | 8 ++++++++ apiserver/plane/app/views/view/base.py | 8 ++++++++ 5 files changed, 40 insertions(+) diff --git a/apiserver/plane/app/views/cycle/base.py b/apiserver/plane/app/views/cycle/base.py index 3b2985f18c5..861d1e9c8fd 100644 --- a/apiserver/plane/app/views/cycle/base.py +++ b/apiserver/plane/app/views/cycle/base.py @@ -47,6 +47,7 @@ User, Project, ProjectMember, + UserRecentVisit, ) from plane.utils.analytics_plot import burndown_plot from plane.bgtasks.recent_visited_task import recent_visited_task @@ -543,6 +544,13 @@ def destroy(self, request, slug, project_id, pk): entity_identifier=pk, project_id=project_id, ).delete() + # Delete the cycle from recent visits + UserRecentVisit.objects.filter( + project_id=project_id, + workspace__slug=slug, + entity_identifier=pk, + entity_name="cycle", + ).delete() return Response(status=status.HTTP_204_NO_CONTENT) diff --git a/apiserver/plane/app/views/issue/base.py b/apiserver/plane/app/views/issue/base.py index 01f4068eeed..0870610b743 100644 --- a/apiserver/plane/app/views/issue/base.py +++ b/apiserver/plane/app/views/issue/base.py @@ -44,6 +44,7 @@ Project, ProjectMember, CycleIssue, + UserRecentVisit, ) from plane.utils.grouper import ( issue_group_values, @@ -671,6 +672,13 @@ def destroy(self, request, slug, project_id, pk=None): issue = Issue.objects.get(workspace__slug=slug, project_id=project_id, pk=pk) issue.delete() + # delete the issue from recent visits + UserRecentVisit.objects.filter( + project_id=project_id, + workspace__slug=slug, + entity_identifier=pk, + entity_name="issue", + ).delete() issue_activity.delay( type="issue.activity.deleted", requested_data=json.dumps({"issue_id": str(pk)}), diff --git a/apiserver/plane/app/views/module/base.py b/apiserver/plane/app/views/module/base.py index 3e3a4c2db72..2099fa49ac4 100644 --- a/apiserver/plane/app/views/module/base.py +++ b/apiserver/plane/app/views/module/base.py @@ -54,6 +54,7 @@ ModuleLink, ModuleUserProperties, Project, + UserRecentVisit, ) from plane.utils.analytics_plot import burndown_plot from plane.utils.timezone_converter import user_timezone_converter @@ -808,6 +809,13 @@ def destroy(self, request, slug, project_id, pk): entity_identifier=pk, project_id=project_id, ).delete() + # delete the module from recent visits + UserRecentVisit.objects.filter( + project_id=project_id, + workspace__slug=slug, + entity_identifier=pk, + entity_name="module", + ).delete() return Response(status=status.HTTP_204_NO_CONTENT) diff --git a/apiserver/plane/app/views/page/base.py b/apiserver/plane/app/views/page/base.py index ff6d3546279..a1483eda4d0 100644 --- a/apiserver/plane/app/views/page/base.py +++ b/apiserver/plane/app/views/page/base.py @@ -33,6 +33,7 @@ ProjectMember, ProjectPage, Project, + UserRecentVisit, ) from plane.utils.error_codes import ERROR_CODES from ..base import BaseAPIView, BaseViewSet @@ -387,6 +388,13 @@ def destroy(self, request, slug, project_id, pk): entity_identifier=pk, entity_type="page", ).delete() + # Delete the page from recent visit + UserRecentVisit.objects.filter( + project_id=project_id, + workspace__slug=slug, + entity_identifier=pk, + entity_name="page", + ).delete() return Response(status=status.HTTP_204_NO_CONTENT) diff --git a/apiserver/plane/app/views/view/base.py b/apiserver/plane/app/views/view/base.py index ca4048b7078..21db96aea50 100644 --- a/apiserver/plane/app/views/view/base.py +++ b/apiserver/plane/app/views/view/base.py @@ -24,6 +24,7 @@ ProjectMember, Project, CycleIssue, + UserRecentVisit, ) from plane.utils.grouper import ( issue_group_values, @@ -495,6 +496,13 @@ def destroy(self, request, slug, project_id, pk): entity_identifier=pk, entity_type="view", ).delete() + # Delete the page from recent visit + UserRecentVisit.objects.filter( + project_id=project_id, + workspace__slug=slug, + entity_identifier=pk, + entity_name="view", + ).delete() else: return Response( {"error": "Only admin or owner can delete the view"}, From 1fbe0bc343117b2db3c7c61ba4b3b647137f9a1f Mon Sep 17 00:00:00 2001 From: NarayanBavisetti Date: Tue, 28 Jan 2025 20:35:00 +0530 Subject: [PATCH 2/2] chore: hard deleted the recent visits --- apiserver/plane/app/views/cycle/base.py | 2 +- apiserver/plane/app/views/issue/base.py | 2 +- apiserver/plane/app/views/module/base.py | 2 +- apiserver/plane/app/views/page/base.py | 2 +- apiserver/plane/app/views/view/base.py | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/apiserver/plane/app/views/cycle/base.py b/apiserver/plane/app/views/cycle/base.py index 861d1e9c8fd..c6682c15c39 100644 --- a/apiserver/plane/app/views/cycle/base.py +++ b/apiserver/plane/app/views/cycle/base.py @@ -550,7 +550,7 @@ def destroy(self, request, slug, project_id, pk): workspace__slug=slug, entity_identifier=pk, entity_name="cycle", - ).delete() + ).delete(soft=False) return Response(status=status.HTTP_204_NO_CONTENT) diff --git a/apiserver/plane/app/views/issue/base.py b/apiserver/plane/app/views/issue/base.py index 0870610b743..c37a3cad12f 100644 --- a/apiserver/plane/app/views/issue/base.py +++ b/apiserver/plane/app/views/issue/base.py @@ -678,7 +678,7 @@ def destroy(self, request, slug, project_id, pk=None): workspace__slug=slug, entity_identifier=pk, entity_name="issue", - ).delete() + ).delete(soft=False) issue_activity.delay( type="issue.activity.deleted", requested_data=json.dumps({"issue_id": str(pk)}), diff --git a/apiserver/plane/app/views/module/base.py b/apiserver/plane/app/views/module/base.py index 2099fa49ac4..d9118de0a75 100644 --- a/apiserver/plane/app/views/module/base.py +++ b/apiserver/plane/app/views/module/base.py @@ -815,7 +815,7 @@ def destroy(self, request, slug, project_id, pk): workspace__slug=slug, entity_identifier=pk, entity_name="module", - ).delete() + ).delete(soft=False) return Response(status=status.HTTP_204_NO_CONTENT) diff --git a/apiserver/plane/app/views/page/base.py b/apiserver/plane/app/views/page/base.py index a1483eda4d0..f4fdc493911 100644 --- a/apiserver/plane/app/views/page/base.py +++ b/apiserver/plane/app/views/page/base.py @@ -394,7 +394,7 @@ def destroy(self, request, slug, project_id, pk): workspace__slug=slug, entity_identifier=pk, entity_name="page", - ).delete() + ).delete(soft=False) return Response(status=status.HTTP_204_NO_CONTENT) diff --git a/apiserver/plane/app/views/view/base.py b/apiserver/plane/app/views/view/base.py index 21db96aea50..c2b401abf99 100644 --- a/apiserver/plane/app/views/view/base.py +++ b/apiserver/plane/app/views/view/base.py @@ -502,7 +502,7 @@ def destroy(self, request, slug, project_id, pk): workspace__slug=slug, entity_identifier=pk, entity_name="view", - ).delete() + ).delete(soft=False) else: return Response( {"error": "Only admin or owner can delete the view"},