Skip to content

Refactored todo model to check only for pending todos

What does this MR do?

Currently the /todo quick action is available only once for each user on an issue. After changing the state of the first To Do to done, still only the /done quick action will be displayed.

To change this behaviour, I added the pending state to any_for_target? inside the todo model. This function currently only is used by TodosFinder/issuable_actions.rb and should not affect other functions.

To obey speaking function names, any_for_target? doesn't describe the functionality anymore - so I am up-front with different naming such as any_pending_for_target or such.

Screenshots

database
first todo db_before_change-fs8
state change db_after_change-fs8
new todo db_after_second_todo-fs8

Issue with already as done marked todo

old new
todo_quick_action_old-fs8 todo_quick_action_new-fs8

Does this MR meet the acceptance criteria?

Conformity

Performance and Testing

Security

If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:

  • Label as security and @ mention @gitlab-com/gl-security/appsec
  • The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • Security reports checked/validated by a reviewer from the AppSec team

Closes #66701 (moved)

Edited by Marc Schwede

Merge request reports