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:
@@ -580,6 +580,7 @@ class ProjectViewSet(BaseViewSet):
|
||||
).exists()
|
||||
):
|
||||
project = Project.objects.get(pk=pk)
|
||||
|
||||
project.delete()
|
||||
webhook_activity.delay(
|
||||
event="project",
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user