-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WEB-3477] fix: mutation issue on moving work items for a manually ended cycle #6696
Conversation
WalkthroughThis pull request refines the filtering logic in the Changes
Suggested labels
Suggested reviewers
Poem
✨ Finishing Touches
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (2)
web/core/store/cycle.store.ts (2)
182-184
: Improved cycle completion logic to include manually completed cyclesThe enhanced condition now correctly identifies cycles as completed when they are explicitly marked with a "completed" status, regardless of their end date. This is a good improvement that allows for manual cycle completion.
Consider adding a comment explaining this logic to help future developers understand the different conditions that make a cycle "completed":
+ // A cycle is completed if either: + // 1. Its end date has passed and is not today, or + // 2. It has been explicitly marked as "completed" regardless of its end date return ( c.project_id === projectId && ((hasEndDatePassed && !isEndDateToday) || c.status?.toLowerCase() === "completed") );
200-202
: Properly exclude completed cycles from incomplete cycles listThis change ensures that cycles explicitly marked as "completed" are not included in the incomplete cycles list, even if their end date hasn't passed yet. This is consistent with the update to
currentProjectCompletedCycleIds
and properly addresses the PR objective of preventing edits to work items in completed cycles.Similar to the previous suggestion, consider adding a comment for clarity:
+ // A cycle is incomplete if: + // 1. It belongs to the current project + // 2. Its end date hasn't passed + // 3. It's not archived + // 4. It's not explicitly marked as "completed" return ( c.project_id === projectId && !hasEndDatePassed && !c?.archived_at && c.status?.toLowerCase() !== "completed" );
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
web/core/store/cycle.store.ts
(2 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (2)
- GitHub Check: Analyze (javascript)
- GitHub Check: Analyze (python)
🔇 Additional comments (1)
web/core/store/cycle.store.ts (1)
182-184
:❓ Verification inconclusive
Verify that this fix is complete for preventing work item edits in completed cycles
The changes correctly identify cycles as completed based on both end date and status. However, to fully implement the PR objective of "preventing users from editing work items that are part of a completed cycle", there might be additional code needed in the UI or other components that actually enforces this restriction.
Let's check if there are any UI components or other code that needs to use these updated cycle classifications to enforce the edit restriction:
Also applies to: 200-202
🏁 Script executed:
#!/bin/bash # Search for places where work items are edited and might need to check cycle completion status echo "Searching for places where work items might be edited in the context of cycles..." # Look for UI components that handle work item editing echo "Looking for UI components that might edit work items in cycles:" rg -A 3 -B 3 "edit.*item.*cycle|cycle.*edit.*item" --glob "*.tsx" --glob "*.jsx" # Look for any API endpoints or services that handle work item mutations within cycles echo "Looking for API handlers for work item mutations:" rg -A 3 -B 3 "update.*cycle.*item|move.*cycle.*item|edit.*cycle.*item" --glob "*.ts" # Look for mutation functions that might need to check cycle completion echo "Looking for mutation functions that might need to be updated:" rg -A 3 -B 3 "mutation.*cycle|update.*cycle" --glob "*.ts" --glob "*.tsx"Length of output: 25304
Verify implementation of work item edit restrictions across UI and API
The updated condition in
web/core/store/cycle.store.ts
(lines 182–184) appropriately marks cycles as completed based on end date and status. However, our repository search did not reveal any explicit checks in the UI (or related mutation functions) that block work item edits when a cycle is completed. It appears that while the cycle classification is updated, additional enforcement in components (e.g., cycle forms, issue editing handlers in the UI, and relevant API endpoints) may be needed to fully prevent editing in completed cycles.
- Action Item: Please review the components modifying work items (such as those found in
cycles/form.tsx
,header.tsx
, and the issue update functions) to ensure they also check for a completed cycle status and disable edits accordingly.
* fix: issue activity for project id validation (#6668) * fix: work item attachment count mutation (#6670) * updated the action to modify the release build assets (#6669) * feat: russian translation (#6666) * chore: ru translation updated (#6672) * fix: state drop down refactor * fix: intake work item creation refactor * fix: cleanup for deprecated functions * fix: date range picker on cycles and modules list (#6676) * fix: Handled workspace switcher closing on click * fix: replaced date range picker with date picker at some places * chore: add common translation keys (#6688) * chore: add missing translation keys * chore: add russian translation keys * fix: issue activity task (#6689) * changed github workflow action ubuntu version to `ubuntu-22.04` (#6683) * chore: update russian translation (#6682) * chore: update russian translation * chore: rename issues to work items in russian translation * [PE-275] chore: editor line spacing variables (#6678) * chore: variable editor line spacing * chore: variable list spacing --------- Co-authored-by: Aaryan Khandelwal <aaryankhandu123@gmail.com> * [WEB-3475] fix: cycle dates dropdown (#6690) * fix: Handled workspace switcher closing on click * fix: Cycle date picker * fix: Made onSelect optional in range range component * fix: module date picker (#6691) * fix: Handled workspace switcher closing on click * fix: reverted module date picker changes * chore: extended sidebar improvement (#6693) * feat: italian translations (#6692) * Create translations.json - ITALIAN translation (#6667) * chore: italian translation updated * feat: italian translation added * fix: module end date translation --------- Co-authored-by: Nicolas Bossi <nicolasbossi@gmail.com> Co-authored-by: gakshita <akshitagoyal1516@gmail.com> * fix: attachment item created by (#6695) * fix: module flicker issue on property updation (#6699) * [WEB-3477] fix: mutation issue on moving work items for a manually ended cycle (#6696) * fix: package version update * fix: esbuild version fix * fix: package license repliation * [WEB-3488] improvement: assignee validation for work item creation (#6701) * fix: work item assignee update validation (#6704) --------- Co-authored-by: Nikhil <118773738+pablohashescobar@users.noreply.github.com> Co-authored-by: Anmol Singh Bhatia <121005188+anmolsinghbhatia@users.noreply.github.com> Co-authored-by: Manish Gupta <59428681+mguptahub@users.noreply.github.com> Co-authored-by: Nikita Mitasov <32384814+ch4og@users.noreply.github.com> Co-authored-by: Akshita Goyal <36129505+gakshita@users.noreply.github.com> Co-authored-by: Aaryan Khandelwal <65252264+aaryan610@users.noreply.github.com> Co-authored-by: Akshat Jain <akshatjain9782@gmail.com> Co-authored-by: Lakhan Baheti <94619783+1akhanBaheti@users.noreply.github.com> Co-authored-by: Aaryan Khandelwal <aaryankhandu123@gmail.com> Co-authored-by: Nicolas Bossi <nicolasbossi@gmail.com> Co-authored-by: gakshita <akshitagoyal1516@gmail.com> Co-authored-by: Prateek Shourya <prateekshourya29@gmail.com>
Description
This PR restricts the users from editing work items in completed cycle
Summary by CodeRabbit