From 8efe692c802b81b802ad505c52372c92e8d0aeab Mon Sep 17 00:00:00 2001 From: Vamsi Krishna <46787868+vamsikrishnamathala@users.noreply.github.com> Date: Mon, 10 Feb 2025 19:33:43 +0530 Subject: [PATCH] [WEB-3235]fix: transfer issues button mutation (#6549) * fix: pending issues mutation * fix: transfer issues count --- apiserver/plane/app/views/cycle/base.py | 8 ++++---- packages/types/src/cycle/cycle.d.ts | 1 - .../components/cycles/list/cycle-list-item-action.tsx | 8 ++++++-- web/core/components/cycles/quick-actions.tsx | 5 ++++- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/apiserver/plane/app/views/cycle/base.py b/apiserver/plane/app/views/cycle/base.py index c6682c15c3..84a161619b 100644 --- a/apiserver/plane/app/views/cycle/base.py +++ b/apiserver/plane/app/views/cycle/base.py @@ -134,11 +134,11 @@ class CycleViewSet(BaseViewSet): ) ) .annotate( - pending_issues=Count( + cancelled_issues=Count( "issue_cycle__issue__id", distinct=True, filter=Q( - issue_cycle__issue__state__group__in=["backlog", "unstarted", "started"], + issue_cycle__issue__state__group__in=["cancelled"], issue_cycle__issue__archived_at__isnull=True, issue_cycle__issue__is_draft=False, issue_cycle__deleted_at__isnull=True, @@ -227,7 +227,7 @@ class CycleViewSet(BaseViewSet): "is_favorite", "total_issues", "completed_issues", - "pending_issues", + "cancelled_issues", "assignee_ids", "status", "version", @@ -259,7 +259,7 @@ class CycleViewSet(BaseViewSet): # meta fields "is_favorite", "total_issues", - "pending_issues", + "cancelled_issues", "completed_issues", "assignee_ids", "status", diff --git a/packages/types/src/cycle/cycle.d.ts b/packages/types/src/cycle/cycle.d.ts index e325b81ad6..638d974e64 100644 --- a/packages/types/src/cycle/cycle.d.ts +++ b/packages/types/src/cycle/cycle.d.ts @@ -104,7 +104,6 @@ export interface ICycle extends TProgressSnapshot { project_detail: IProjectDetails; progress: any[]; version: number; - pending_issues: number; } export interface CycleIssueResponse { diff --git a/web/core/components/cycles/list/cycle-list-item-action.tsx b/web/core/components/cycles/list/cycle-list-item-action.tsx index a5b98ca5d5..f44b9bd6c1 100644 --- a/web/core/components/cycles/list/cycle-list-item-action.tsx +++ b/web/core/components/cycles/list/cycle-list-item-action.tsx @@ -86,7 +86,11 @@ export const CycleListItemAction: FC = observer((props) => { const showIssueCount = useMemo(() => cycleStatus === "draft" || cycleStatus === "upcoming", [cycleStatus]); - const showTransferIssues = routerProjectId && cycleDetails.pending_issues > 0 && cycleStatus === "completed"; + const transferableIssuesCount = cycleDetails + ? cycleDetails.total_issues - (cycleDetails.cancelled_issues + cycleDetails.completed_issues) + : 0; + + const showTransferIssues = routerProjectId && transferableIssuesCount > 0 && cycleStatus === "completed"; const isEditingAllowed = allowPermissions( [EUserPermissions.ADMIN, EUserPermissions.MEMBER], @@ -258,7 +262,7 @@ export const CycleListItemAction: FC = observer((props) => { }} > - Transfer {cycleDetails.pending_issues} work items + Transfer {transferableIssuesCount} work items )} diff --git a/web/core/components/cycles/quick-actions.tsx b/web/core/components/cycles/quick-actions.tsx index 5d27cfe107..436ed0cdda 100644 --- a/web/core/components/cycles/quick-actions.tsx +++ b/web/core/components/cycles/quick-actions.tsx @@ -44,6 +44,9 @@ export const CycleQuickActions: React.FC = observer((props) => { const isArchived = !!cycleDetails?.archived_at; const isCompleted = cycleDetails?.status?.toLowerCase() === "completed"; const isCurrentCycle = cycleDetails?.status?.toLowerCase() === "current"; + const transferrableIssuesCount = cycleDetails + ? cycleDetails.total_issues - (cycleDetails.cancelled_issues + cycleDetails.completed_issues) + : 0; // auth const isEditingAllowed = allowPermissions( [EUserPermissions.ADMIN, EUserPermissions.MEMBER], @@ -178,7 +181,7 @@ export const CycleQuickActions: React.FC = observer((props) => { cycleId={cycleId} projectId={projectId} workspaceSlug={workspaceSlug} - transferrableIssuesCount={cycleDetails.pending_issues} + transferrableIssuesCount={transferrableIssuesCount} cycleName={cycleDetails.name} /> )}