From 45fded9842b03c94764b214d06a9f42335cd5cea Mon Sep 17 00:00:00 2001 From: Bavisetti Narayan <72156168+NarayanBavisetti@users.noreply.github.com> Date: Mon, 23 Sep 2024 16:33:39 +0530 Subject: [PATCH] chore: issue relation hard delete (#5671) --- apiserver/plane/api/views/project.py | 11 ++++++++--- apiserver/plane/app/views/issue/relation.py | 2 +- apiserver/plane/app/views/project/base.py | 11 ++++++++--- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/apiserver/plane/api/views/project.py b/apiserver/plane/api/views/project.py index 577d319d1..594329a44 100644 --- a/apiserver/plane/api/views/project.py +++ b/apiserver/plane/api/views/project.py @@ -301,11 +301,16 @@ class ProjectAPIEndpoint(BaseAPIView): if serializer.is_valid(): serializer.save() if serializer.data["inbox_view"]: - Inbox.objects.get_or_create( - defaults={"name": f"{project.name} Inbox"}, + inbox = Inbox.objects.filter( project=project, is_default=True, - ) + ).first() + if not inbox: + Inbox.objects.create( + name=f"{project.name} Inbox", + project=project, + is_default=True, + ) # Create the triage state in Backlog group State.objects.get_or_create( diff --git a/apiserver/plane/app/views/issue/relation.py b/apiserver/plane/app/views/issue/relation.py index 9b4161bd1..e69614747 100644 --- a/apiserver/plane/app/views/issue/relation.py +++ b/apiserver/plane/app/views/issue/relation.py @@ -267,7 +267,7 @@ class IssueRelationViewSet(BaseViewSet): IssueRelationSerializer(issue_relation).data, cls=DjangoJSONEncoder, ) - issue_relation.delete() + issue_relation.delete(soft=False) issue_activity.delay( type="issue_relation.activity.deleted", requested_data=json.dumps(request.data, cls=DjangoJSONEncoder), diff --git a/apiserver/plane/app/views/project/base.py b/apiserver/plane/app/views/project/base.py index 14a5864d7..8bdff03e6 100644 --- a/apiserver/plane/app/views/project/base.py +++ b/apiserver/plane/app/views/project/base.py @@ -438,11 +438,16 @@ class ProjectViewSet(BaseViewSet): if serializer.is_valid(): serializer.save() if serializer.data["inbox_view"]: - Inbox.objects.get_or_create( - defaults={"name": f"{project.name} Inbox"}, + inbox = Inbox.objects.filter( project=project, is_default=True, - ) + ).first() + if not inbox: + Inbox.objects.create( + name=f"{project.name} Inbox", + project=project, + is_default=True, + ) # Create the triage state in Backlog group State.objects.get_or_create(