mirror of
https://github.com/makeplane/plane.git
synced 2026-01-26 16:19:43 -06:00
chore: updated queryset for soft delete (#5844)
This commit is contained in:
committed by
GitHub
parent
b6a7e45e8d
commit
d552913171
@@ -212,7 +212,7 @@ class IssueSerializer(BaseSerializer):
|
||||
updated_by_id = instance.updated_by_id
|
||||
|
||||
if assignees is not None:
|
||||
IssueAssignee.objects.filter(issue=instance).delete()
|
||||
IssueAssignee.objects.filter(issue=instance).delete(soft=False)
|
||||
IssueAssignee.objects.bulk_create(
|
||||
[
|
||||
IssueAssignee(
|
||||
@@ -229,7 +229,7 @@ class IssueSerializer(BaseSerializer):
|
||||
)
|
||||
|
||||
if labels is not None:
|
||||
IssueLabel.objects.filter(issue=instance).delete()
|
||||
IssueLabel.objects.filter(issue=instance).delete(soft=False)
|
||||
IssueLabel.objects.bulk_create(
|
||||
[
|
||||
IssueLabel(
|
||||
|
||||
@@ -169,7 +169,9 @@ class DraftIssueCreateSerializer(BaseSerializer):
|
||||
updated_by_id = instance.updated_by_id
|
||||
|
||||
if assignees is not None:
|
||||
DraftIssueAssignee.objects.filter(draft_issue=instance).delete()
|
||||
DraftIssueAssignee.objects.filter(draft_issue=instance).delete(
|
||||
soft=False
|
||||
)
|
||||
DraftIssueAssignee.objects.bulk_create(
|
||||
[
|
||||
DraftIssueAssignee(
|
||||
@@ -186,7 +188,9 @@ class DraftIssueCreateSerializer(BaseSerializer):
|
||||
)
|
||||
|
||||
if labels is not None:
|
||||
DraftIssueLabel.objects.filter(draft_issue=instance).delete()
|
||||
DraftIssueLabel.objects.filter(draft_issue=instance).delete(
|
||||
soft=False
|
||||
)
|
||||
DraftIssueLabel.objects.bulk_create(
|
||||
[
|
||||
DraftIssueLabel(
|
||||
|
||||
@@ -201,7 +201,7 @@ class IssueCreateSerializer(BaseSerializer):
|
||||
updated_by_id = instance.updated_by_id
|
||||
|
||||
if assignees is not None:
|
||||
IssueAssignee.objects.filter(issue=instance).delete()
|
||||
IssueAssignee.objects.filter(issue=instance).delete(soft=False)
|
||||
IssueAssignee.objects.bulk_create(
|
||||
[
|
||||
IssueAssignee(
|
||||
@@ -218,7 +218,7 @@ class IssueCreateSerializer(BaseSerializer):
|
||||
)
|
||||
|
||||
if labels is not None:
|
||||
IssueLabel.objects.filter(issue=instance).delete()
|
||||
IssueLabel.objects.filter(issue=instance).delete(soft=False)
|
||||
IssueLabel.objects.bulk_create(
|
||||
[
|
||||
IssueLabel(
|
||||
|
||||
@@ -43,9 +43,19 @@ class UserAuditModel(models.Model):
|
||||
abstract = True
|
||||
|
||||
|
||||
class SoftDeletionQuerySet(models.QuerySet):
|
||||
def delete(self, soft=True):
|
||||
if soft:
|
||||
return self.update(deleted_at=timezone.now())
|
||||
else:
|
||||
return super().delete()
|
||||
|
||||
|
||||
class SoftDeletionManager(models.Manager):
|
||||
def get_queryset(self):
|
||||
return super().get_queryset().filter(deleted_at__isnull=True)
|
||||
return SoftDeletionQuerySet(self.model, using=self._db).filter(
|
||||
deleted_at__isnull=True
|
||||
)
|
||||
|
||||
|
||||
class SoftDeleteModel(models.Model):
|
||||
|
||||
@@ -12,6 +12,7 @@ from django.db.models import Q
|
||||
|
||||
# Module imports
|
||||
from plane.utils.html_processor import strip_tags
|
||||
from plane.db.mixins import SoftDeletionManager
|
||||
|
||||
from .project import ProjectBaseModel
|
||||
|
||||
@@ -79,7 +80,7 @@ def get_default_display_properties():
|
||||
|
||||
|
||||
# TODO: Handle identifiers for Bulk Inserts - nk
|
||||
class IssueManager(models.Manager):
|
||||
class IssueManager(SoftDeletionManager):
|
||||
def get_queryset(self):
|
||||
return (
|
||||
super()
|
||||
@@ -90,7 +91,6 @@ class IssueManager(models.Manager):
|
||||
| models.Q(issue_inbox__status=2)
|
||||
| models.Q(issue_inbox__isnull=True)
|
||||
)
|
||||
.filter(deleted_at__isnull=True)
|
||||
.filter(state__is_triage=False)
|
||||
.exclude(archived_at__isnull=False)
|
||||
.exclude(project__archived_at__isnull=False)
|
||||
@@ -172,7 +172,6 @@ class Issue(ProjectBaseModel):
|
||||
blank=True,
|
||||
)
|
||||
|
||||
objects = models.Manager()
|
||||
issue_objects = IssueManager()
|
||||
|
||||
class Meta:
|
||||
|
||||
@@ -421,7 +421,7 @@ class IssueCreateSerializer(BaseSerializer):
|
||||
updated_by_id = instance.updated_by_id
|
||||
|
||||
if assignees is not None:
|
||||
IssueAssignee.objects.filter(issue=instance).delete()
|
||||
IssueAssignee.objects.filter(issue=instance).delete(soft=False)
|
||||
IssueAssignee.objects.bulk_create(
|
||||
[
|
||||
IssueAssignee(
|
||||
@@ -438,7 +438,7 @@ class IssueCreateSerializer(BaseSerializer):
|
||||
)
|
||||
|
||||
if labels is not None:
|
||||
IssueLabel.objects.filter(issue=instance).delete()
|
||||
IssueLabel.objects.filter(issue=instance).delete(soft=False)
|
||||
IssueLabel.objects.bulk_create(
|
||||
[
|
||||
IssueLabel(
|
||||
|
||||
Reference in New Issue
Block a user