chore: soft deletion of cycle and module (#5884)
* chore: soft deletion of cycle and module * chore: cycle module soft delete * chore: added the deletion task * chore: updated the env example * chore: cycle issue unique constraints * chore: udpated the Q operator
This commit is contained in:
parent
00eff43f4d
commit
7bf4620bc1
31 changed files with 317 additions and 141 deletions
|
|
@ -210,7 +210,7 @@ class WorkspaceViewIssuesViewSet(BaseViewSet):
|
|||
.annotate(
|
||||
cycle_id=Case(
|
||||
When(
|
||||
issue_cycle__cycle__deleted_at__isnull=True,
|
||||
issue_cycle__deleted_at__isnull=True,
|
||||
then=F("issue_cycle__cycle_id"),
|
||||
),
|
||||
default=None,
|
||||
|
|
@ -244,9 +244,9 @@ class WorkspaceViewIssuesViewSet(BaseViewSet):
|
|||
ArrayAgg(
|
||||
"labels__id",
|
||||
distinct=True,
|
||||
filter=(
|
||||
filter=Q(
|
||||
~Q(labels__id__isnull=True)
|
||||
& Q(labels__deleted_at__isnull=True)
|
||||
& Q(label_issue__deleted_at__isnull=True),
|
||||
),
|
||||
),
|
||||
Value([], output_field=ArrayField(UUIDField())),
|
||||
|
|
@ -255,8 +255,11 @@ class WorkspaceViewIssuesViewSet(BaseViewSet):
|
|||
ArrayAgg(
|
||||
"assignees__id",
|
||||
distinct=True,
|
||||
filter=~Q(assignees__id__isnull=True)
|
||||
& Q(assignees__member_project__is_active=True),
|
||||
filter=Q(
|
||||
~Q(assignees__id__isnull=True)
|
||||
& Q(assignees__member_project__is_active=True)
|
||||
& Q(issue_assignee__deleted_at__isnull=True)
|
||||
),
|
||||
),
|
||||
Value([], output_field=ArrayField(UUIDField())),
|
||||
),
|
||||
|
|
@ -264,9 +267,11 @@ class WorkspaceViewIssuesViewSet(BaseViewSet):
|
|||
ArrayAgg(
|
||||
"issue_module__module_id",
|
||||
distinct=True,
|
||||
filter=~Q(issue_module__module_id__isnull=True)
|
||||
& Q(issue_module__module__archived_at__isnull=True)
|
||||
& Q(issue_module__module__deleted_at__isnull=True),
|
||||
filter=Q(
|
||||
~Q(issue_module__module_id__isnull=True)
|
||||
& Q(issue_module__module__archived_at__isnull=True)
|
||||
& Q(issue_module__deleted_at__isnull=True)
|
||||
),
|
||||
),
|
||||
Value([], output_field=ArrayField(UUIDField())),
|
||||
),
|
||||
|
|
@ -288,7 +293,7 @@ class WorkspaceViewIssuesViewSet(BaseViewSet):
|
|||
.annotate(
|
||||
cycle_id=Case(
|
||||
When(
|
||||
issue_cycle__cycle__deleted_at__isnull=True,
|
||||
issue_cycle__deleted_at__isnull=True,
|
||||
then=F("issue_cycle__cycle_id"),
|
||||
),
|
||||
default=None,
|
||||
|
|
@ -552,7 +557,9 @@ class IssueViewViewSet(BaseViewSet):
|
|||
serializer.errors, status=status.HTTP_400_BAD_REQUEST
|
||||
)
|
||||
|
||||
@allow_permission(allowed_roles=[ROLE.ADMIN], creator=True, model=IssueView)
|
||||
@allow_permission(
|
||||
allowed_roles=[ROLE.ADMIN], creator=True, model=IssueView
|
||||
)
|
||||
def destroy(self, request, slug, project_id, pk):
|
||||
project_view = IssueView.objects.get(
|
||||
pk=pk,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue