From 0cc59947a39bae074d4996e8b61d16bd644a0609 Mon Sep 17 00:00:00 2001 From: NarayanBavisetti Date: Fri, 18 Oct 2024 15:16:03 +0530 Subject: [PATCH 1/3] chore: added the deleted cycles from list --- apiserver/plane/api/views/issue.py | 10 ++++++- apiserver/plane/app/views/cycle/issue.py | 12 ++++++-- apiserver/plane/app/views/inbox/base.py | 12 ++++++-- apiserver/plane/app/views/issue/archive.py | 19 ++++++------ apiserver/plane/app/views/issue/base.py | 30 ++++++++++++++++++- apiserver/plane/app/views/issue/relation.py | 21 ++++++++++++- apiserver/plane/app/views/issue/sub_issue.py | 11 +++++++ apiserver/plane/app/views/module/issue.py | 11 +++++++ apiserver/plane/app/views/view/base.py | 20 +++++++++++++ apiserver/plane/app/views/workspace/draft.py | 19 ++++++++++-- apiserver/plane/app/views/workspace/user.py | 9 ++++++ apiserver/plane/space/views/issue.py | 9 ++++++ .../custom-image/components/image-block.tsx | 2 +- 13 files changed, 166 insertions(+), 19 deletions(-) diff --git a/apiserver/plane/api/views/issue.py b/apiserver/plane/api/views/issue.py index 77f0fad623d..27c7042b49b 100644 --- a/apiserver/plane/api/views/issue.py +++ b/apiserver/plane/api/views/issue.py @@ -202,7 +202,15 @@ def get(self, request, slug, project_id, pk=None): issue_queryset = ( self.get_queryset() - .annotate(cycle_id=F("issue_cycle__cycle_id")) + .annotate( + cycle_id=Case( + When( + Q(issue_cycle__cycle__deleted_at__isnull=True), + then=F("issue_cycle__cycle_id"), + ), + default=None, + ) + ) .annotate( link_count=IssueLink.objects.filter(issue=OuterRef("id")) .order_by() diff --git a/apiserver/plane/app/views/cycle/issue.py b/apiserver/plane/app/views/cycle/issue.py index cdd6b11ad6a..a9a33059900 100644 --- a/apiserver/plane/app/views/cycle/issue.py +++ b/apiserver/plane/app/views/cycle/issue.py @@ -3,7 +3,7 @@ # Django imports from django.core import serializers -from django.db.models import F, Func, OuterRef, Q +from django.db.models import F, Func, OuterRef, Q, Case, When from django.utils import timezone from django.utils.decorators import method_decorator from django.views.decorators.gzip import gzip_page @@ -102,7 +102,15 @@ def list(self, request, slug, project_id, cycle_id): "issue_cycle__cycle", ) .filter(**filters) - .annotate(cycle_id=F("issue_cycle__cycle_id")) + .annotate( + cycle_id=Case( + When( + issue_cycle__cycle__deleted_at__isnull=True, + then=F("issue_cycle__cycle_id"), + ), + default=None, + ) + ) .annotate( link_count=IssueLink.objects.filter(issue=OuterRef("id")) .order_by() diff --git a/apiserver/plane/app/views/inbox/base.py b/apiserver/plane/app/views/inbox/base.py index ac4da953709..59a9cf955ee 100644 --- a/apiserver/plane/app/views/inbox/base.py +++ b/apiserver/plane/app/views/inbox/base.py @@ -3,7 +3,7 @@ # Django import from django.utils import timezone -from django.db.models import Q, Count, OuterRef, Func, F, Prefetch +from django.db.models import Q, Count, OuterRef, Func, F, Prefetch, Case, When from django.core.serializers.json import DjangoJSONEncoder from django.contrib.postgres.aggregates import ArrayAgg from django.contrib.postgres.fields import ArrayField @@ -112,7 +112,15 @@ def get_queryset(self): ), ) ) - .annotate(cycle_id=F("issue_cycle__cycle_id")) + .annotate( + cycle_id=Case( + When( + issue_cycle__cycle__deleted_at__isnull=True, + then=F("issue_cycle__cycle_id"), + ), + default=None, + ) + ) .annotate( link_count=IssueLink.objects.filter(issue=OuterRef("id")) .order_by() diff --git a/apiserver/plane/app/views/issue/archive.py b/apiserver/plane/app/views/issue/archive.py index 83fc5d0c2c8..283f1ad99a8 100644 --- a/apiserver/plane/app/views/issue/archive.py +++ b/apiserver/plane/app/views/issue/archive.py @@ -3,14 +3,7 @@ # Django imports from django.core.serializers.json import DjangoJSONEncoder -from django.db.models import ( - F, - Func, - OuterRef, - Q, - Prefetch, - Exists, -) +from django.db.models import F, Func, OuterRef, Q, Prefetch, Exists, Case, When from django.utils import timezone from django.utils.decorators import method_decorator from django.views.decorators.gzip import gzip_page @@ -71,7 +64,15 @@ def get_queryset(self): .filter(workspace__slug=self.kwargs.get("slug")) .select_related("workspace", "project", "state", "parent") .prefetch_related("assignees", "labels", "issue_module__module") - .annotate(cycle_id=F("issue_cycle__cycle_id")) + .annotate( + cycle_id=Case( + When( + issue_cycle__cycle__deleted_at__isnull=True, + then=F("issue_cycle__cycle_id"), + ), + default=None, + ) + ) .annotate( link_count=IssueLink.objects.filter(issue=OuterRef("id")) .order_by() diff --git a/apiserver/plane/app/views/issue/base.py b/apiserver/plane/app/views/issue/base.py index a1cca7f431a..0ae7a8ca606 100644 --- a/apiserver/plane/app/views/issue/base.py +++ b/apiserver/plane/app/views/issue/base.py @@ -14,6 +14,8 @@ Q, UUIDField, Value, + When, + Case, ) from django.db.models.functions import Coalesce from django.utils import timezone @@ -84,6 +86,15 @@ def get(self, request, slug, project_id): .select_related("workspace", "project", "state", "parent") .prefetch_related("assignees", "labels", "issue_module__module") .annotate(cycle_id=F("issue_cycle__cycle_id")) + .annotate( + cycle_id=Case( + When( + issue_cycle__cycle__deleted_at__isnull=True, + then=F("issue_cycle__cycle_id"), + ), + default=None, + ) + ) .annotate( link_count=IssueLink.objects.filter(issue=OuterRef("id")) .order_by() @@ -207,7 +218,15 @@ def get_queryset(self): .filter(workspace__slug=self.kwargs.get("slug")) .select_related("workspace", "project", "state", "parent") .prefetch_related("assignees", "labels", "issue_module__module") - .annotate(cycle_id=F("issue_cycle__cycle_id")) + .annotate( + cycle_id=Case( + When( + issue_cycle__cycle__deleted_at__isnull=True, + then=F("issue_cycle__cycle_id"), + ), + default=None, + ) + ) .annotate( link_count=IssueLink.objects.filter(issue=OuterRef("id")) .order_by() @@ -758,6 +777,15 @@ def get_queryset(self): ) .prefetch_related("assignees", "labels", "issue_module__module") .annotate(cycle_id=F("issue_cycle__cycle_id")) + .annotate( + cycle_id=Case( + When( + issue_cycle__cycle__deleted_at__isnull=True, + then=F("issue_cycle__cycle_id"), + ), + default=None, + ) + ) .annotate( link_count=IssueLink.objects.filter(issue=OuterRef("id")) .order_by() diff --git a/apiserver/plane/app/views/issue/relation.py b/apiserver/plane/app/views/issue/relation.py index 4bf622f28ac..191b5207cfc 100644 --- a/apiserver/plane/app/views/issue/relation.py +++ b/apiserver/plane/app/views/issue/relation.py @@ -3,7 +3,17 @@ # Django imports from django.utils import timezone -from django.db.models import Q, OuterRef, F, Func, UUIDField, Value, CharField +from django.db.models import ( + Q, + OuterRef, + F, + Func, + UUIDField, + Value, + CharField, + Case, + When, +) from django.core.serializers.json import DjangoJSONEncoder from django.db.models.functions import Coalesce from django.contrib.postgres.aggregates import ArrayAgg @@ -84,6 +94,15 @@ def list(self, request, slug, project_id, issue_id): .select_related("workspace", "project", "state", "parent") .prefetch_related("assignees", "labels", "issue_module__module") .annotate(cycle_id=F("issue_cycle__cycle_id")) + .annotate( + cycle_id=Case( + When( + issue_cycle__cycle__deleted_at__isnull=True, + then=F("issue_cycle__cycle_id"), + ), + default=None, + ) + ) .annotate( link_count=IssueLink.objects.filter(issue=OuterRef("id")) .order_by() diff --git a/apiserver/plane/app/views/issue/sub_issue.py b/apiserver/plane/app/views/issue/sub_issue.py index cf9c0f709cb..651b588cd3a 100644 --- a/apiserver/plane/app/views/issue/sub_issue.py +++ b/apiserver/plane/app/views/issue/sub_issue.py @@ -10,6 +10,8 @@ Q, Value, UUIDField, + Case, + When, ) from django.utils.decorators import method_decorator from django.views.decorators.gzip import gzip_page @@ -49,6 +51,15 @@ def get(self, request, slug, project_id, issue_id): .select_related("workspace", "project", "state", "parent") .prefetch_related("assignees", "labels", "issue_module__module") .annotate(cycle_id=F("issue_cycle__cycle_id")) + .annotate( + cycle_id=Case( + When( + issue_cycle__cycle__deleted_at__isnull=True, + then=F("issue_cycle__cycle_id"), + ), + default=None, + ) + ) .annotate( link_count=IssueLink.objects.filter(issue=OuterRef("id")) .order_by() diff --git a/apiserver/plane/app/views/module/issue.py b/apiserver/plane/app/views/module/issue.py index 8edced252d7..26a67fcb7b4 100644 --- a/apiserver/plane/app/views/module/issue.py +++ b/apiserver/plane/app/views/module/issue.py @@ -6,6 +6,8 @@ Func, OuterRef, Q, + Case, + When, ) # Django Imports @@ -66,6 +68,15 @@ def get_queryset(self): .select_related("workspace", "project", "state", "parent") .prefetch_related("assignees", "labels", "issue_module__module") .annotate(cycle_id=F("issue_cycle__cycle_id")) + .annotate( + cycle_id=Case( + When( + issue_cycle__cycle__deleted_at__isnull=True, + then=F("issue_cycle__cycle_id"), + ), + default=None, + ) + ) .annotate( link_count=IssueLink.objects.filter(issue=OuterRef("id")) .order_by() diff --git a/apiserver/plane/app/views/view/base.py b/apiserver/plane/app/views/view/base.py index 56f03cda658..38eea2eb50d 100644 --- a/apiserver/plane/app/views/view/base.py +++ b/apiserver/plane/app/views/view/base.py @@ -9,6 +9,8 @@ Q, UUIDField, Value, + Case, + When, ) from django.db.models.functions import Coalesce from django.utils.decorators import method_decorator @@ -206,6 +208,15 @@ def get_queryset(self): .select_related("workspace", "project", "state", "parent") .prefetch_related("assignees", "labels", "issue_module__module") .annotate(cycle_id=F("issue_cycle__cycle_id")) + .annotate( + cycle_id=Case( + When( + issue_cycle__cycle__deleted_at__isnull=True, + then=F("issue_cycle__cycle_id"), + ), + default=None, + ) + ) .annotate( link_count=IssueLink.objects.filter(issue=OuterRef("id")) .order_by() @@ -276,6 +287,15 @@ def list(self, request, slug): self.get_queryset() .filter(**filters) .annotate(cycle_id=F("issue_cycle__cycle_id")) + .annotate( + cycle_id=Case( + When( + issue_cycle__cycle__deleted_at__isnull=True, + then=F("issue_cycle__cycle_id"), + ), + default=None, + ) + ) ) # check for the project member role, if the role is 5 then check for the guest_view_all_features if it is true then show all the issues else show only the issues created by the user diff --git a/apiserver/plane/app/views/workspace/draft.py b/apiserver/plane/app/views/workspace/draft.py index ee899be6823..d116c421474 100644 --- a/apiserver/plane/app/views/workspace/draft.py +++ b/apiserver/plane/app/views/workspace/draft.py @@ -12,6 +12,8 @@ Q, UUIDField, Value, + Case, + When, ) from django.db.models.functions import Coalesce from django.utils.decorators import method_decorator @@ -55,6 +57,15 @@ def get_queryset(self): "assignees", "labels", "draft_issue_module__module" ) .annotate(cycle_id=F("draft_issue_cycle__cycle_id")) + .annotate( + cycle_id=Case( + When( + issue_cycle__cycle__deleted_at__isnull=True, + then=F("issue_cycle__cycle_id"), + ), + default=None, + ) + ) .annotate( label_ids=Coalesce( ArrayAgg( @@ -81,8 +92,12 @@ def get_queryset(self): "draft_issue_module__module_id", distinct=True, filter=~Q(draft_issue_module__module_id__isnull=True) - & Q(draft_issue_module__module__archived_at__isnull=True) - & Q(draft_issue_module__module__deleted_at__isnull=True), + & Q( + draft_issue_module__module__archived_at__isnull=True + ) + & Q( + draft_issue_module__module__deleted_at__isnull=True + ), ), Value([], output_field=ArrayField(UUIDField())), ), diff --git a/apiserver/plane/app/views/workspace/user.py b/apiserver/plane/app/views/workspace/user.py index 57cde8d8bc2..4628b015d95 100644 --- a/apiserver/plane/app/views/workspace/user.py +++ b/apiserver/plane/app/views/workspace/user.py @@ -121,6 +121,15 @@ def get(self, request, slug, user_id): .select_related("workspace", "project", "state", "parent") .prefetch_related("assignees", "labels", "issue_module__module") .annotate(cycle_id=F("issue_cycle__cycle_id")) + .annotate( + cycle_id=Case( + When( + issue_cycle__cycle__deleted_at__isnull=True, + then=F("issue_cycle__cycle_id"), + ), + default=None, + ) + ) .annotate( link_count=IssueLink.objects.filter(issue=OuterRef("id")) .order_by() diff --git a/apiserver/plane/space/views/issue.py b/apiserver/plane/space/views/issue.py index d79940e1c96..15c642a8178 100644 --- a/apiserver/plane/space/views/issue.py +++ b/apiserver/plane/space/views/issue.py @@ -107,6 +107,15 @@ def get(self, request, anchor): ) ) .annotate(cycle_id=F("issue_cycle__cycle_id")) + .annotate( + cycle_id=Case( + When( + issue_cycle__cycle__deleted_at__isnull=True, + then=F("issue_cycle__cycle_id"), + ), + default=None, + ) + ) .annotate( link_count=IssueLink.objects.filter(issue=OuterRef("id")) .order_by() diff --git a/packages/editor/src/core/extensions/custom-image/components/image-block.tsx b/packages/editor/src/core/extensions/custom-image/components/image-block.tsx index 4054938ef4d..364193f112d 100644 --- a/packages/editor/src/core/extensions/custom-image/components/image-block.tsx +++ b/packages/editor/src/core/extensions/custom-image/components/image-block.tsx @@ -56,7 +56,7 @@ export const CustomImageBlock: React.FC = (props) => { getPos, editor, editorContainer, - src: remoteImageSrc, + // src: remoteImageSrc, setEditorContainer, } = props; const { src: remoteImageSrc, width: nodeWidth, height: nodeHeight, aspectRatio: nodeAspectRatio } = node.attrs; From 0dc2b2545eeaa31f4473a64b9fa5ef1b53c981ac Mon Sep 17 00:00:00 2001 From: NarayanBavisetti Date: Fri, 18 Oct 2024 15:25:06 +0530 Subject: [PATCH 2/3] chore: removed the extra annotation --- apiserver/plane/app/views/issue/base.py | 2 -- apiserver/plane/app/views/issue/relation.py | 1 - apiserver/plane/app/views/issue/sub_issue.py | 1 - apiserver/plane/app/views/module/issue.py | 1 - apiserver/plane/app/views/view/base.py | 2 -- apiserver/plane/app/views/workspace/user.py | 1 - apiserver/plane/space/views/issue.py | 11 +++++++++-- 7 files changed, 9 insertions(+), 10 deletions(-) diff --git a/apiserver/plane/app/views/issue/base.py b/apiserver/plane/app/views/issue/base.py index 0ae7a8ca606..0488a5471d8 100644 --- a/apiserver/plane/app/views/issue/base.py +++ b/apiserver/plane/app/views/issue/base.py @@ -85,7 +85,6 @@ def get(self, request, slug, project_id): .filter(workspace__slug=self.kwargs.get("slug")) .select_related("workspace", "project", "state", "parent") .prefetch_related("assignees", "labels", "issue_module__module") - .annotate(cycle_id=F("issue_cycle__cycle_id")) .annotate( cycle_id=Case( When( @@ -776,7 +775,6 @@ def get_queryset(self): "workspace", "project", "state", "parent" ) .prefetch_related("assignees", "labels", "issue_module__module") - .annotate(cycle_id=F("issue_cycle__cycle_id")) .annotate( cycle_id=Case( When( diff --git a/apiserver/plane/app/views/issue/relation.py b/apiserver/plane/app/views/issue/relation.py index 191b5207cfc..83385d83d72 100644 --- a/apiserver/plane/app/views/issue/relation.py +++ b/apiserver/plane/app/views/issue/relation.py @@ -93,7 +93,6 @@ def list(self, request, slug, project_id, issue_id): Issue.issue_objects.filter(workspace__slug=slug) .select_related("workspace", "project", "state", "parent") .prefetch_related("assignees", "labels", "issue_module__module") - .annotate(cycle_id=F("issue_cycle__cycle_id")) .annotate( cycle_id=Case( When( diff --git a/apiserver/plane/app/views/issue/sub_issue.py b/apiserver/plane/app/views/issue/sub_issue.py index 651b588cd3a..700d6db5b39 100644 --- a/apiserver/plane/app/views/issue/sub_issue.py +++ b/apiserver/plane/app/views/issue/sub_issue.py @@ -50,7 +50,6 @@ def get(self, request, slug, project_id, issue_id): ) .select_related("workspace", "project", "state", "parent") .prefetch_related("assignees", "labels", "issue_module__module") - .annotate(cycle_id=F("issue_cycle__cycle_id")) .annotate( cycle_id=Case( When( diff --git a/apiserver/plane/app/views/module/issue.py b/apiserver/plane/app/views/module/issue.py index 26a67fcb7b4..f58e477567a 100644 --- a/apiserver/plane/app/views/module/issue.py +++ b/apiserver/plane/app/views/module/issue.py @@ -67,7 +67,6 @@ def get_queryset(self): ) .select_related("workspace", "project", "state", "parent") .prefetch_related("assignees", "labels", "issue_module__module") - .annotate(cycle_id=F("issue_cycle__cycle_id")) .annotate( cycle_id=Case( When( diff --git a/apiserver/plane/app/views/view/base.py b/apiserver/plane/app/views/view/base.py index 38eea2eb50d..59cfcecd57a 100644 --- a/apiserver/plane/app/views/view/base.py +++ b/apiserver/plane/app/views/view/base.py @@ -207,7 +207,6 @@ def get_queryset(self): ) .select_related("workspace", "project", "state", "parent") .prefetch_related("assignees", "labels", "issue_module__module") - .annotate(cycle_id=F("issue_cycle__cycle_id")) .annotate( cycle_id=Case( When( @@ -286,7 +285,6 @@ def list(self, request, slug): issue_queryset = ( self.get_queryset() .filter(**filters) - .annotate(cycle_id=F("issue_cycle__cycle_id")) .annotate( cycle_id=Case( When( diff --git a/apiserver/plane/app/views/workspace/user.py b/apiserver/plane/app/views/workspace/user.py index 4628b015d95..fae917af295 100644 --- a/apiserver/plane/app/views/workspace/user.py +++ b/apiserver/plane/app/views/workspace/user.py @@ -120,7 +120,6 @@ def get(self, request, slug, user_id): .filter(**filters) .select_related("workspace", "project", "state", "parent") .prefetch_related("assignees", "labels", "issue_module__module") - .annotate(cycle_id=F("issue_cycle__cycle_id")) .annotate( cycle_id=Case( When( diff --git a/apiserver/plane/space/views/issue.py b/apiserver/plane/space/views/issue.py index 15c642a8178..bd9d499d60b 100644 --- a/apiserver/plane/space/views/issue.py +++ b/apiserver/plane/space/views/issue.py @@ -106,7 +106,6 @@ def get(self, request, anchor): queryset=IssueVote.objects.select_related("actor"), ) ) - .annotate(cycle_id=F("issue_cycle__cycle_id")) .annotate( cycle_id=Case( When( @@ -704,7 +703,15 @@ def get(self, request, anchor, issue_id): ) .select_related("workspace", "project", "state", "parent") .prefetch_related("assignees", "labels", "issue_module__module") - .annotate(cycle_id=F("issue_cycle__cycle_id")) + .annotate( + cycle_id=Case( + When( + issue_cycle__cycle__deleted_at__isnull=True, + then=F("issue_cycle__cycle_id"), + ), + default=None, + ) + ) .annotate( label_ids=Coalesce( ArrayAgg( From 1ac3328b423b6f778a3463acea195fdf799a2f62 Mon Sep 17 00:00:00 2001 From: NarayanBavisetti Date: Fri, 18 Oct 2024 15:47:28 +0530 Subject: [PATCH 3/3] chore: removed the frontend comment --- .../src/core/extensions/custom-image/components/image-block.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/editor/src/core/extensions/custom-image/components/image-block.tsx b/packages/editor/src/core/extensions/custom-image/components/image-block.tsx index 364193f112d..4054938ef4d 100644 --- a/packages/editor/src/core/extensions/custom-image/components/image-block.tsx +++ b/packages/editor/src/core/extensions/custom-image/components/image-block.tsx @@ -56,7 +56,7 @@ export const CustomImageBlock: React.FC = (props) => { getPos, editor, editorContainer, - // src: remoteImageSrc, + src: remoteImageSrc, setEditorContainer, } = props; const { src: remoteImageSrc, width: nodeWidth, height: nodeHeight, aspectRatio: nodeAspectRatio } = node.attrs;