[WEB-3235]fix: transfer issues button mutation (#6549)

* fix: pending issues mutation

* fix: transfer issues count
This commit is contained in:
Vamsi Krishna 2025-02-10 19:33:43 +05:30 committed by GitHub
parent ce57c1423c
commit 8efe692c80
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 14 additions and 8 deletions

View file

@ -134,11 +134,11 @@ class CycleViewSet(BaseViewSet):
) )
) )
.annotate( .annotate(
pending_issues=Count( cancelled_issues=Count(
"issue_cycle__issue__id", "issue_cycle__issue__id",
distinct=True, distinct=True,
filter=Q( 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__archived_at__isnull=True,
issue_cycle__issue__is_draft=False, issue_cycle__issue__is_draft=False,
issue_cycle__deleted_at__isnull=True, issue_cycle__deleted_at__isnull=True,
@ -227,7 +227,7 @@ class CycleViewSet(BaseViewSet):
"is_favorite", "is_favorite",
"total_issues", "total_issues",
"completed_issues", "completed_issues",
"pending_issues", "cancelled_issues",
"assignee_ids", "assignee_ids",
"status", "status",
"version", "version",
@ -259,7 +259,7 @@ class CycleViewSet(BaseViewSet):
# meta fields # meta fields
"is_favorite", "is_favorite",
"total_issues", "total_issues",
"pending_issues", "cancelled_issues",
"completed_issues", "completed_issues",
"assignee_ids", "assignee_ids",
"status", "status",

View file

@ -104,7 +104,6 @@ export interface ICycle extends TProgressSnapshot {
project_detail: IProjectDetails; project_detail: IProjectDetails;
progress: any[]; progress: any[];
version: number; version: number;
pending_issues: number;
} }
export interface CycleIssueResponse { export interface CycleIssueResponse {

View file

@ -86,7 +86,11 @@ export const CycleListItemAction: FC<Props> = observer((props) => {
const showIssueCount = useMemo(() => cycleStatus === "draft" || cycleStatus === "upcoming", [cycleStatus]); 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( const isEditingAllowed = allowPermissions(
[EUserPermissions.ADMIN, EUserPermissions.MEMBER], [EUserPermissions.ADMIN, EUserPermissions.MEMBER],
@ -258,7 +262,7 @@ export const CycleListItemAction: FC<Props> = observer((props) => {
}} }}
> >
<TransferIcon className="fill-custom-primary-200 w-4" /> <TransferIcon className="fill-custom-primary-200 w-4" />
<span>Transfer {cycleDetails.pending_issues} work items</span> <span>Transfer {transferableIssuesCount} work items</span>
</div> </div>
)} )}

View file

@ -44,6 +44,9 @@ export const CycleQuickActions: React.FC<Props> = observer((props) => {
const isArchived = !!cycleDetails?.archived_at; const isArchived = !!cycleDetails?.archived_at;
const isCompleted = cycleDetails?.status?.toLowerCase() === "completed"; const isCompleted = cycleDetails?.status?.toLowerCase() === "completed";
const isCurrentCycle = cycleDetails?.status?.toLowerCase() === "current"; const isCurrentCycle = cycleDetails?.status?.toLowerCase() === "current";
const transferrableIssuesCount = cycleDetails
? cycleDetails.total_issues - (cycleDetails.cancelled_issues + cycleDetails.completed_issues)
: 0;
// auth // auth
const isEditingAllowed = allowPermissions( const isEditingAllowed = allowPermissions(
[EUserPermissions.ADMIN, EUserPermissions.MEMBER], [EUserPermissions.ADMIN, EUserPermissions.MEMBER],
@ -178,7 +181,7 @@ export const CycleQuickActions: React.FC<Props> = observer((props) => {
cycleId={cycleId} cycleId={cycleId}
projectId={projectId} projectId={projectId}
workspaceSlug={workspaceSlug} workspaceSlug={workspaceSlug}
transferrableIssuesCount={cycleDetails.pending_issues} transferrableIssuesCount={transferrableIssuesCount}
cycleName={cycleDetails.name} cycleName={cycleDetails.name}
/> />
)} )}