From dcf6da6f9dcd6b4b459911b244f7f5dfb9330aea Mon Sep 17 00:00:00 2001 From: NarayanBavisetti Date: Fri, 20 Sep 2024 20:07:36 +0530 Subject: [PATCH] chore: issue relation hard delete --- 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 577d319d15b..594329a44af 100644 --- a/apiserver/plane/api/views/project.py +++ b/apiserver/plane/api/views/project.py @@ -301,11 +301,16 @@ def patch(self, request, slug, pk): 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 9b4161bd1ad..e69614747eb 100644 --- a/apiserver/plane/app/views/issue/relation.py +++ b/apiserver/plane/app/views/issue/relation.py @@ -267,7 +267,7 @@ def remove_relation(self, request, slug, project_id, issue_id): 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 14a5864d781..8bdff03e627 100644 --- a/apiserver/plane/app/views/project/base.py +++ b/apiserver/plane/app/views/project/base.py @@ -438,11 +438,16 @@ def partial_update(self, request, slug, pk=None): 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(