fix: deleted at not updating for pages (#2720)

* fix: updated deleted_at of pages for project deletion

* chore: change function name

* chore: code refacture

* chore: remove unused imports

* chore: optimize filter logic
This commit is contained in:
Sangeetha
2025-03-13 16:40:22 +05:30
committed by GitHub
parent 6201bcb971
commit f9aad5c845
3 changed files with 19 additions and 0 deletions
@@ -580,6 +580,7 @@ class ProjectViewSet(BaseViewSet):
).exists()
):
project = Project.objects.get(pk=pk)
project.delete()
webhook_activity.delay(
event="project",
+11
View File
@@ -110,6 +110,17 @@ def soft_delete_related_objects(app_label, model_name, instance_pk, using=None):
instance.save()
@shared_task
def soft_delete_pages_on_project_deletion(project_id):
from plane.db.models import Page
pages = Page.objects.filter(project_pages__project_id=project_id)
for page in pages:
page.deleted_at = timezone.now()
page.save()
# @shared_task
def restore_related_objects(app_label, model_name, instance_pk, using=None):
pass
+7
View File
@@ -13,6 +13,7 @@ from plane.db.mixins import AuditModel
# Module imports
from .base import BaseModel
from plane.bgtasks.deletion_task import soft_delete_pages_on_project_deletion
ROLE_CHOICES = ((20, "Admin"), (15, "Member"), (5, "Guest"))
@@ -155,6 +156,12 @@ class Project(BaseModel):
self.identifier = self.identifier.strip().upper()
return super().save(*args, **kwargs)
def delete(self, using=None, *args, **kwargs):
delete_queryset = super().delete(using=using, *args, **kwargs)
soft_delete_pages_on_project_deletion.delay(self.id)
return delete_queryset
class ProjectBaseModel(BaseModel):
project = models.ForeignKey(