Skip to content

Commit d552913

Browse files
chore: updated queryset for soft delete (#5844)
1 parent b6a7e45 commit d552913

File tree

6 files changed

+25
-12
lines changed

6 files changed

+25
-12
lines changed

apiserver/plane/api/serializers/issue.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ def update(self, instance, validated_data):
212212
updated_by_id = instance.updated_by_id
213213

214214
if assignees is not None:
215-
IssueAssignee.objects.filter(issue=instance).delete()
215+
IssueAssignee.objects.filter(issue=instance).delete(soft=False)
216216
IssueAssignee.objects.bulk_create(
217217
[
218218
IssueAssignee(
@@ -229,7 +229,7 @@ def update(self, instance, validated_data):
229229
)
230230

231231
if labels is not None:
232-
IssueLabel.objects.filter(issue=instance).delete()
232+
IssueLabel.objects.filter(issue=instance).delete(soft=False)
233233
IssueLabel.objects.bulk_create(
234234
[
235235
IssueLabel(

apiserver/plane/app/serializers/draft.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,9 @@ def update(self, instance, validated_data):
169169
updated_by_id = instance.updated_by_id
170170

171171
if assignees is not None:
172-
DraftIssueAssignee.objects.filter(draft_issue=instance).delete()
172+
DraftIssueAssignee.objects.filter(draft_issue=instance).delete(
173+
soft=False
174+
)
173175
DraftIssueAssignee.objects.bulk_create(
174176
[
175177
DraftIssueAssignee(
@@ -186,7 +188,9 @@ def update(self, instance, validated_data):
186188
)
187189

188190
if labels is not None:
189-
DraftIssueLabel.objects.filter(draft_issue=instance).delete()
191+
DraftIssueLabel.objects.filter(draft_issue=instance).delete(
192+
soft=False
193+
)
190194
DraftIssueLabel.objects.bulk_create(
191195
[
192196
DraftIssueLabel(

apiserver/plane/app/serializers/issue.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ def update(self, instance, validated_data):
201201
updated_by_id = instance.updated_by_id
202202

203203
if assignees is not None:
204-
IssueAssignee.objects.filter(issue=instance).delete()
204+
IssueAssignee.objects.filter(issue=instance).delete(soft=False)
205205
IssueAssignee.objects.bulk_create(
206206
[
207207
IssueAssignee(
@@ -218,7 +218,7 @@ def update(self, instance, validated_data):
218218
)
219219

220220
if labels is not None:
221-
IssueLabel.objects.filter(issue=instance).delete()
221+
IssueLabel.objects.filter(issue=instance).delete(soft=False)
222222
IssueLabel.objects.bulk_create(
223223
[
224224
IssueLabel(

apiserver/plane/db/mixins.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,19 @@ class Meta:
4343
abstract = True
4444

4545

46+
class SoftDeletionQuerySet(models.QuerySet):
47+
def delete(self, soft=True):
48+
if soft:
49+
return self.update(deleted_at=timezone.now())
50+
else:
51+
return super().delete()
52+
53+
4654
class SoftDeletionManager(models.Manager):
4755
def get_queryset(self):
48-
return super().get_queryset().filter(deleted_at__isnull=True)
56+
return SoftDeletionQuerySet(self.model, using=self._db).filter(
57+
deleted_at__isnull=True
58+
)
4959

5060

5161
class SoftDeleteModel(models.Model):

apiserver/plane/db/models/issue.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
# Module imports
1414
from plane.utils.html_processor import strip_tags
15+
from plane.db.mixins import SoftDeletionManager
1516

1617
from .project import ProjectBaseModel
1718

@@ -79,7 +80,7 @@ def get_default_display_properties():
7980

8081

8182
# TODO: Handle identifiers for Bulk Inserts - nk
82-
class IssueManager(models.Manager):
83+
class IssueManager(SoftDeletionManager):
8384
def get_queryset(self):
8485
return (
8586
super()
@@ -90,7 +91,6 @@ def get_queryset(self):
9091
| models.Q(issue_inbox__status=2)
9192
| models.Q(issue_inbox__isnull=True)
9293
)
93-
.filter(deleted_at__isnull=True)
9494
.filter(state__is_triage=False)
9595
.exclude(archived_at__isnull=False)
9696
.exclude(project__archived_at__isnull=False)
@@ -172,7 +172,6 @@ class Issue(ProjectBaseModel):
172172
blank=True,
173173
)
174174

175-
objects = models.Manager()
176175
issue_objects = IssueManager()
177176

178177
class Meta:

apiserver/plane/space/serializer/issue.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -421,7 +421,7 @@ def update(self, instance, validated_data):
421421
updated_by_id = instance.updated_by_id
422422

423423
if assignees is not None:
424-
IssueAssignee.objects.filter(issue=instance).delete()
424+
IssueAssignee.objects.filter(issue=instance).delete(soft=False)
425425
IssueAssignee.objects.bulk_create(
426426
[
427427
IssueAssignee(
@@ -438,7 +438,7 @@ def update(self, instance, validated_data):
438438
)
439439

440440
if labels is not None:
441-
IssueLabel.objects.filter(issue=instance).delete()
441+
IssueLabel.objects.filter(issue=instance).delete(soft=False)
442442
IssueLabel.objects.bulk_create(
443443
[
444444
IssueLabel(

0 commit comments

Comments
 (0)