Skip to content
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-2697] chore: draft issue listing #5874

Merged
merged 1 commit into from
Oct 21, 2024
Merged

Conversation

NarayanBavisetti
Copy link
Collaborator

@NarayanBavisetti NarayanBavisetti commented Oct 21, 2024

chore:

  • fixed the minor bug in listing draft issues

Issue Link: WEB-2697

Summary by CodeRabbit

  • New Features

    • Implemented soft deletion for cycles, allowing them to be marked as deleted without permanent removal.
    • Enhanced filtering and querying capabilities for cycle management, including a new cycle_view parameter.
  • Bug Fixes

    • Improved error handling for updates to completed cycles, preventing unintended modifications.
  • Documentation

    • Updated logic for managing draft issues to reflect changes in cycle deletion status.

These changes enhance the overall robustness and functionality of cycle management within the application.

Copy link
Contributor

coderabbitai bot commented Oct 21, 2024

Walkthrough

The changes in this pull request primarily involve modifications to the cycle management API endpoints, specifically focusing on implementing soft deletion for cycles and enhancing the logic for transferring cycle issues. The CycleAPIEndpoint now performs soft deletes, allowing cycles to be marked as deleted without permanent removal. Additionally, the logic for handling cycle issues during deletion has been altered, and various methods in the CycleViewSet class have been updated to improve filtering, validation, and error handling related to cycles.

Changes

File Path Change Summary
apiserver/plane/api/views/cycle.py - Updated delete method in CycleAPIEndpoint for soft deletion; removed deletion of cycle issues.
- Updated post method in TransferCycleIssueAPIEndpoint to include additional checks for transferring issues.
apiserver/plane/app/views/cycle/base.py - Updated destroy method in CycleViewSet for soft deletion.
- Enhanced get_queryset for complex filtering and annotation.
- Modified list method to handle new cycle_view parameter.
- Improved error handling in partial_update for completed cycles.
- Added validation in create method for start and end dates.
apiserver/plane/app/views/workspace/draft.py - Updated get_queryset in WorkspaceDraftIssueViewSet to alter how cycle_id is annotated based on deletion status.

Possibly related PRs

Suggested labels

🐛bug, ⚙️backend, 🧹chore

Suggested reviewers

  • Pablohashescobar
  • Sriramveeraghanta

Poem

🐇 In the meadow where cycles roam,
Softly now, they find their home.
Issues linger, not erased,
In the garden of time, they're placed.
With checks and balances, we play,
In the cycle's dance, we find our way! 🌼


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?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

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)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between db91942 and cfc5086.

📒 Files selected for processing (3)
  • apiserver/plane/api/views/cycle.py (1 hunks)
  • apiserver/plane/app/views/cycle/base.py (1 hunks)
  • apiserver/plane/app/views/workspace/draft.py (1 hunks)
🧰 Additional context used
🔇 Additional comments (2)
apiserver/plane/app/views/workspace/draft.py (1)

63-64: LGTM! Cycle ID annotation updated for draft issues.

The change in the cycle_id annotation logic looks good. It now correctly references draft_issue_cycle instead of issue_cycle, which aligns with the context of draft issues. This modification supports the implementation of soft deletion for cycles, ensuring that the cycle_id is only assigned when the associated cycle is not marked as deleted.

apiserver/plane/api/views/cycle.py (1)

407-407: ⚠️ Potential issue

Verify the usage of the soft parameter in cycle.delete(soft=False)

The call to cycle.delete(soft=False) may result in a hard delete of the cycle object since the soft parameter is set to False. If the intention is to perform a soft delete, which typically marks the object as deleted without removing it from the database, please verify that setting soft=False aligns with the desired delete behavior according to the delete method implementation in the Cycle model.

Run the following script to check the default value and usage of the soft parameter in the delete method of the Cycle model:

Comment on lines +493 to +494
# TODO: Soft delete the cycle break the onetoone relationship with cycle issue
cycle.delete(soft=False)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Implement soft deletion for cycles

Currently, the destroy method performs a hard delete with cycle.delete(soft=False), which contradicts the PR's objective to implement soft deletion for cycles. The TODO comment indicates that soft deleting the cycle breaks the one-to-one relationship with CycleIssue. Addressing this issue will allow cycles to be soft-deleted as intended, maintaining data integrity and consistency.

Would you like assistance in resolving the relationship issue to enable soft deletion? I can help modify the deletion logic to preserve associations while soft deleting the cycle.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants