To-Do: Capture resolution mechanism
Problem to solve
GitLab does not know much about how users interact with Todos. Specifically, we do not know how Todos are entering a "resolved" state (currently done
, but could also mean dismissed
after Issue #215046 (closed) has been executed).
Proposal
Save the type of resolution mechanism to the Todo record as resolved_by_action
with these options:
- api-all-done (triggered by API mark all todos as done)
- api-done (triggered by API mark a todo as done)
- mark-all-done (triggered by the "Done" button on the To-Do List)
- mark-done (triggered by the "Mark all as done" button on the To-Do List)
- system-done (triggered by any automatic/system action to mark a Todo as "done")
- close-all (only if the "closed" state has been introduced; triggered by the button to "Close all" on the To-Do List)
Note: resolved_by_action
should always be blank for Todos in a "pending" state, so if a user clicks any "Undo" button the resolved_by_action
should be reverted to nil.
Out of scope
- No backfill migration for resolved Todos should be introduced under this issue, because 1) it would be burdensome and 2) we don't know if users historically interpreted "done" as "complete" or "dismiss".
- No new resolution actions or states will be introduced under this issue
- This new attribute should not be exposed in the API, because it is for internal research only.
Links / references
- This issue was spun out of To-Do API: Distinguish which action resulted in the resolution.
Edited by Dan Jensen