+
>
From 180f1d74e877260f3f87d17515e5bafd33ce2dd3 Mon Sep 17 00:00:00 2001
From: Bavisetti Narayan <72156168+NarayanBavisetti@users.noreply.github.com>
Date: Wed, 20 Mar 2024 19:59:31 +0530
Subject: [PATCH 5/7] dev: removed double issue count (#4008)
---
apiserver/plane/api/views/module.py | 12 ++++++++++++
apiserver/plane/app/views/cycle/base.py | 5 +++++
apiserver/plane/app/views/module/base.py | 12 ++++++++++++
apiserver/plane/app/views/workspace/module.py | 6 ++++++
4 files changed, 35 insertions(+)
diff --git a/apiserver/plane/api/views/module.py b/apiserver/plane/api/views/module.py
index 460722f999..88bb1b05e1 100644
--- a/apiserver/plane/api/views/module.py
+++ b/apiserver/plane/api/views/module.py
@@ -67,6 +67,7 @@ class ModuleAPIEndpoint(WebhookMixin, BaseAPIView):
issue_module__issue__archived_at__isnull=True,
issue_module__issue__is_draft=False,
),
+ distinct=True,
),
)
.annotate(
@@ -77,6 +78,7 @@ class ModuleAPIEndpoint(WebhookMixin, BaseAPIView):
issue_module__issue__archived_at__isnull=True,
issue_module__issue__is_draft=False,
),
+ distinct=True,
)
)
.annotate(
@@ -87,6 +89,7 @@ class ModuleAPIEndpoint(WebhookMixin, BaseAPIView):
issue_module__issue__archived_at__isnull=True,
issue_module__issue__is_draft=False,
),
+ distinct=True,
)
)
.annotate(
@@ -97,6 +100,7 @@ class ModuleAPIEndpoint(WebhookMixin, BaseAPIView):
issue_module__issue__archived_at__isnull=True,
issue_module__issue__is_draft=False,
),
+ distinct=True,
)
)
.annotate(
@@ -107,6 +111,7 @@ class ModuleAPIEndpoint(WebhookMixin, BaseAPIView):
issue_module__issue__archived_at__isnull=True,
issue_module__issue__is_draft=False,
),
+ distinct=True,
)
)
.annotate(
@@ -117,6 +122,7 @@ class ModuleAPIEndpoint(WebhookMixin, BaseAPIView):
issue_module__issue__archived_at__isnull=True,
issue_module__issue__is_draft=False,
),
+ distinct=True,
)
)
.order_by(self.kwargs.get("order_by", "-created_at"))
@@ -486,6 +492,7 @@ class ModuleArchiveUnarchiveAPIEndpoint(BaseAPIView):
issue_module__issue__archived_at__isnull=True,
issue_module__issue__is_draft=False,
),
+ distinct=True,
),
)
.annotate(
@@ -496,6 +503,7 @@ class ModuleArchiveUnarchiveAPIEndpoint(BaseAPIView):
issue_module__issue__archived_at__isnull=True,
issue_module__issue__is_draft=False,
),
+ distinct=True,
)
)
.annotate(
@@ -506,6 +514,7 @@ class ModuleArchiveUnarchiveAPIEndpoint(BaseAPIView):
issue_module__issue__archived_at__isnull=True,
issue_module__issue__is_draft=False,
),
+ distinct=True,
)
)
.annotate(
@@ -516,6 +525,7 @@ class ModuleArchiveUnarchiveAPIEndpoint(BaseAPIView):
issue_module__issue__archived_at__isnull=True,
issue_module__issue__is_draft=False,
),
+ distinct=True,
)
)
.annotate(
@@ -526,6 +536,7 @@ class ModuleArchiveUnarchiveAPIEndpoint(BaseAPIView):
issue_module__issue__archived_at__isnull=True,
issue_module__issue__is_draft=False,
),
+ distinct=True,
)
)
.annotate(
@@ -536,6 +547,7 @@ class ModuleArchiveUnarchiveAPIEndpoint(BaseAPIView):
issue_module__issue__archived_at__isnull=True,
issue_module__issue__is_draft=False,
),
+ distinct=True,
)
)
.order_by(self.kwargs.get("order_by", "-created_at"))
diff --git a/apiserver/plane/app/views/cycle/base.py b/apiserver/plane/app/views/cycle/base.py
index b70db4c113..f2b4935023 100644
--- a/apiserver/plane/app/views/cycle/base.py
+++ b/apiserver/plane/app/views/cycle/base.py
@@ -107,6 +107,7 @@ class CycleViewSet(WebhookMixin, BaseViewSet):
issue_cycle__issue__archived_at__isnull=True,
issue_cycle__issue__is_draft=False,
),
+ distinct=True,
)
)
.annotate(
@@ -117,6 +118,7 @@ class CycleViewSet(WebhookMixin, BaseViewSet):
issue_cycle__issue__archived_at__isnull=True,
issue_cycle__issue__is_draft=False,
),
+ distinct=True,
)
)
.annotate(
@@ -127,6 +129,7 @@ class CycleViewSet(WebhookMixin, BaseViewSet):
issue_cycle__issue__archived_at__isnull=True,
issue_cycle__issue__is_draft=False,
),
+ distinct=True,
)
)
.annotate(
@@ -137,6 +140,7 @@ class CycleViewSet(WebhookMixin, BaseViewSet):
issue_cycle__issue__archived_at__isnull=True,
issue_cycle__issue__is_draft=False,
),
+ distinct=True,
)
)
.annotate(
@@ -147,6 +151,7 @@ class CycleViewSet(WebhookMixin, BaseViewSet):
issue_cycle__issue__archived_at__isnull=True,
issue_cycle__issue__is_draft=False,
),
+ distinct=True,
)
)
.annotate(
diff --git a/apiserver/plane/app/views/module/base.py b/apiserver/plane/app/views/module/base.py
index f6329c2236..2e4b1024da 100644
--- a/apiserver/plane/app/views/module/base.py
+++ b/apiserver/plane/app/views/module/base.py
@@ -86,6 +86,7 @@ class ModuleViewSet(WebhookMixin, BaseViewSet):
issue_module__issue__archived_at__isnull=True,
issue_module__issue__is_draft=False,
),
+ distinct=True,
),
)
.annotate(
@@ -96,6 +97,7 @@ class ModuleViewSet(WebhookMixin, BaseViewSet):
issue_module__issue__archived_at__isnull=True,
issue_module__issue__is_draft=False,
),
+ distinct=True,
)
)
.annotate(
@@ -106,6 +108,7 @@ class ModuleViewSet(WebhookMixin, BaseViewSet):
issue_module__issue__archived_at__isnull=True,
issue_module__issue__is_draft=False,
),
+ distinct=True,
)
)
.annotate(
@@ -116,6 +119,7 @@ class ModuleViewSet(WebhookMixin, BaseViewSet):
issue_module__issue__archived_at__isnull=True,
issue_module__issue__is_draft=False,
),
+ distinct=True,
)
)
.annotate(
@@ -126,6 +130,7 @@ class ModuleViewSet(WebhookMixin, BaseViewSet):
issue_module__issue__archived_at__isnull=True,
issue_module__issue__is_draft=False,
),
+ distinct=True,
)
)
.annotate(
@@ -136,6 +141,7 @@ class ModuleViewSet(WebhookMixin, BaseViewSet):
issue_module__issue__archived_at__isnull=True,
issue_module__issue__is_draft=False,
),
+ distinct=True,
)
)
.annotate(
@@ -517,6 +523,7 @@ class ModuleArchiveUnarchiveEndpoint(BaseAPIView):
issue_module__issue__archived_at__isnull=True,
issue_module__issue__is_draft=False,
),
+ distinct=True,
),
)
.annotate(
@@ -527,6 +534,7 @@ class ModuleArchiveUnarchiveEndpoint(BaseAPIView):
issue_module__issue__archived_at__isnull=True,
issue_module__issue__is_draft=False,
),
+ distinct=True,
)
)
.annotate(
@@ -537,6 +545,7 @@ class ModuleArchiveUnarchiveEndpoint(BaseAPIView):
issue_module__issue__archived_at__isnull=True,
issue_module__issue__is_draft=False,
),
+ distinct=True,
)
)
.annotate(
@@ -547,6 +556,7 @@ class ModuleArchiveUnarchiveEndpoint(BaseAPIView):
issue_module__issue__archived_at__isnull=True,
issue_module__issue__is_draft=False,
),
+ distinct=True,
)
)
.annotate(
@@ -557,6 +567,7 @@ class ModuleArchiveUnarchiveEndpoint(BaseAPIView):
issue_module__issue__archived_at__isnull=True,
issue_module__issue__is_draft=False,
),
+ distinct=True,
)
)
.annotate(
@@ -567,6 +578,7 @@ class ModuleArchiveUnarchiveEndpoint(BaseAPIView):
issue_module__issue__archived_at__isnull=True,
issue_module__issue__is_draft=False,
),
+ distinct=True,
)
)
.annotate(
diff --git a/apiserver/plane/app/views/workspace/module.py b/apiserver/plane/app/views/workspace/module.py
index fbd760271a..8dd5e97f48 100644
--- a/apiserver/plane/app/views/workspace/module.py
+++ b/apiserver/plane/app/views/workspace/module.py
@@ -45,6 +45,7 @@ class WorkspaceModulesEndpoint(BaseAPIView):
issue_module__issue__archived_at__isnull=True,
issue_module__issue__is_draft=False,
),
+ distinct=True,
),
)
.annotate(
@@ -55,6 +56,7 @@ class WorkspaceModulesEndpoint(BaseAPIView):
issue_module__issue__archived_at__isnull=True,
issue_module__issue__is_draft=False,
),
+ distinct=True,
)
)
.annotate(
@@ -65,6 +67,7 @@ class WorkspaceModulesEndpoint(BaseAPIView):
issue_module__issue__archived_at__isnull=True,
issue_module__issue__is_draft=False,
),
+ distinct=True,
)
)
.annotate(
@@ -75,6 +78,7 @@ class WorkspaceModulesEndpoint(BaseAPIView):
issue_module__issue__archived_at__isnull=True,
issue_module__issue__is_draft=False,
),
+ distinct=True,
)
)
.annotate(
@@ -85,6 +89,7 @@ class WorkspaceModulesEndpoint(BaseAPIView):
issue_module__issue__archived_at__isnull=True,
issue_module__issue__is_draft=False,
),
+ distinct=True,
)
)
.annotate(
@@ -95,6 +100,7 @@ class WorkspaceModulesEndpoint(BaseAPIView):
issue_module__issue__archived_at__isnull=True,
issue_module__issue__is_draft=False,
),
+ distinct=True,
)
)
.order_by(self.kwargs.get("order_by", "-created_at"))
From 054dd2bb7df38715f19b7b10a416ba609242060f Mon Sep 17 00:00:00 2001
From: Anmol Singh Bhatia <121005188+anmolsinghbhatia@users.noreply.github.com>
Date: Wed, 20 Mar 2024 20:00:13 +0530
Subject: [PATCH 6/7] fix: module empty state (#4004)
---
web/components/modules/modules-list-view.tsx | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/web/components/modules/modules-list-view.tsx b/web/components/modules/modules-list-view.tsx
index a4cb7a6524..ce8ce4e65f 100644
--- a/web/components/modules/modules-list-view.tsx
+++ b/web/components/modules/modules-list-view.tsx
@@ -10,6 +10,7 @@ import { CycleModuleBoardLayout, CycleModuleListLayout, GanttLayoutLoader } from
// assets
// constants
import { EmptyStateType } from "@/constants/empty-state";
+import { calculateTotalFilters } from "@/helpers/filter.helper";
import { useApplication, useEventTracker, useModule, useModuleFilter } from "@/hooks/store";
import AllFiltersImage from "public/empty-state/module/all-filters.svg";
import NameFilterImage from "public/empty-state/module/name-filter.svg";
@@ -22,10 +23,12 @@ export const ModulesListView: React.FC = observer(() => {
const { commandPalette: commandPaletteStore } = useApplication();
const { setTrackElement } = useEventTracker();
const { getFilteredModuleIds, loader } = useModule();
- const { currentProjectDisplayFilters: displayFilters, searchQuery } = useModuleFilter();
+ const { currentProjectDisplayFilters: displayFilters, searchQuery, currentProjectFilters } = useModuleFilter();
// derived values
const filteredModuleIds = projectId ? getFilteredModuleIds(projectId.toString()) : undefined;
+ const totalFilters = calculateTotalFilters(currentProjectFilters ?? {});
+
if (loader || !filteredModuleIds)
return (
<>
@@ -35,7 +38,7 @@ export const ModulesListView: React.FC = observer(() => {
>
);
- if (filteredModuleIds.length === 0)
+ if (totalFilters > 0 || searchQuery.trim() !== "")
return (
From 37c5ce54d558d79835ebf49b5c91ae829556623a Mon Sep 17 00:00:00 2001
From: Anmol Singh Bhatia <121005188+anmolsinghbhatia@users.noreply.github.com>
Date: Wed, 20 Mar 2024 20:00:34 +0530
Subject: [PATCH 7/7] fix: peek overview sub issue operation (#4002)
---
.../issues/sub-issues/issue-list-item.tsx | 16 ++++++++++++++--
web/components/issues/sub-issues/root.tsx | 3 +++
2 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/web/components/issues/sub-issues/issue-list-item.tsx b/web/components/issues/sub-issues/issue-list-item.tsx
index c3842e6b2c..825f19796c 100644
--- a/web/components/issues/sub-issues/issue-list-item.tsx
+++ b/web/components/issues/sub-issues/issue-list-item.tsx
@@ -45,6 +45,8 @@ export const IssueListItem: React.FC
= observer((props) => {
setPeekIssue,
issue: { getIssueById },
subIssues: { subIssueHelpersByIssueId, setSubIssueHelpers },
+ toggleCreateIssueModal,
+ toggleDeleteIssueModal,
} = useIssueDetail();
const project = useProject();
const { getProjectStates } = useProjectState();
@@ -139,7 +141,12 @@ export const IssueListItem: React.FC = observer((props) => {
{disabled && (
- handleIssueCrudState("update", parentIssueId, { ...issue })}>
+ {
+ handleIssueCrudState("update", parentIssueId, { ...issue });
+ toggleCreateIssueModal(true);
+ }}
+ >
Edit issue
@@ -148,7 +155,12 @@ export const IssueListItem: React.FC
= observer((props) => {
)}
{disabled && (
- handleIssueCrudState("delete", parentIssueId, issue)}>
+ {
+ handleIssueCrudState("delete", parentIssueId, issue);
+ toggleDeleteIssueModal(true);
+ }}
+ >
Delete issue
diff --git a/web/components/issues/sub-issues/root.tsx b/web/components/issues/sub-issues/root.tsx
index 9c02fbcc47..b9c40f6e2c 100644
--- a/web/components/issues/sub-issues/root.tsx
+++ b/web/components/issues/sub-issues/root.tsx
@@ -57,6 +57,7 @@ export const SubIssuesRoot: FC = observer((props) => {
toggleCreateIssueModal,
isSubIssuesModalOpen,
toggleSubIssuesModal,
+ toggleDeleteIssueModal,
} = useIssueDetail();
const { setTrackElement, captureIssueEvent } = useEventTracker();
// state
@@ -496,6 +497,7 @@ export const SubIssuesRoot: FC = observer((props) => {
isOpen={issueCrudState?.update?.toggle}
onClose={() => {
handleIssueCrudState("update", null, null);
+ toggleCreateIssueModal(false);
}}
data={issueCrudState?.update?.issue ?? undefined}
onSubmit={async (_issue: TIssue) => {
@@ -521,6 +523,7 @@ export const SubIssuesRoot: FC = observer((props) => {
isOpen={issueCrudState?.delete?.toggle}
handleClose={() => {
handleIssueCrudState("delete", null, null);
+ toggleDeleteIssueModal(false);
}}
data={issueCrudState?.delete?.issue as TIssue}
onSubmit={async () =>