todo_done_checkmark
Odoo's personal to-dos mark completion with a single circled check. todo_done_checkmark is a state_selection in disguise, with two pieces of memory the source docs never mention.
| Technical name | todo_done_checkmark |
|---|---|
| Field types | selection |
| Views | form, list, kanban, activity |
| Module | project_todo |
| Used in core | 4 occurrences across 1 module: the to-do list, form, and activity views |
| Versions | Odoo 20.0, Odoo 19.0, Odoo 18.0, Odoo 17.0 |
| No-code setup | No. Applied via the widget attribute in view XML |
| Alternatives | state_selection, project_task_state_selection, task_done_checkmark, boolean_toggle |
What the To-do done checkmark does
What this means for your team
Supported options in Odoo 19
| Option | Type | What it does |
|---|---|---|
autosave | boolean | Inherited from state_selection and honored only on the list/kanban path, where the click goes through updateRecord. Form clicks bypass it entirely. Deleted upstream on the Odoo 20 development branch.(default: true) |
hide_label | boolean | Inherited from state_selection but visually moot: the custom template renders only the icon, so no label appears either way. |
hide_label is effectively moot. The custom template never renders a label at all, so the inherited option changes nothing visible. It is listed because the prop pipeline still accepts it; do not expect a label to appear by setting it to False.
Working examples
Two state flags and one if statement
Version compatibility
| Version | Status | Notes |
|---|---|---|
| Odoo 20.0 | Partial / changed | Not released. viewType check renamed kanban to card and the inherited autosave option is deleted upstream; details below. |
| Odoo 19.0 | Verified | Verified against the shipped source. |
| Odoo 18.0 | Verified | Identical to 19.0 apart from code style. |
| Odoo 17.0 | Verified | Widget introduced with the to-do app; same behavior. |
| Odoo 16.0 | Not available | The project_todo module does not exist. |
Upgrade note. Introduced with the to-do app in Odoo 17; the 17, 18, and 19 files differ only in code style. Nothing to migrate between those versions. Coming from 16, the to-do app itself does not exist there.
What is changing in Odoo 20
Common problems and fixes
| Symptom | Cause and fix |
|---|---|
| Tick disappears after leaving the to-do form | On forms the click is a pending edit, saved only with the form. Save the form, or tick from the list or kanban where the widget saves immediately. |
| Unchecking restores a state the user did not expect | The widget returns to the state captured when the view loaded, or falls back to in progress if it loaded as done. No fix needed; this is the designed memory behavior. |
| The icon does not update while hovering over it | The appearance is frozen under the mouse to prevent mid-click glyph flips. Move the pointer away; the icon syncs on mouseleave. |
| Widget errors or misbehaves on a custom selection field | The values 1_done and 01_in_progress are hardcoded in the toggle logic. Use it only on selections containing those exact values, or subclass with your own values. |
| Widget not found on a database without the to-do app | Registration lives in project_todo, not web or project. Install project_todo or use state_selection instead. |
To-do done checkmark vs the alternatives
| Widget | Best for | Key difference |
|---|---|---|
todo_done_checkmark | Done/not-done ticking on personal to-dos | Whole state machine collapsed into one remembering toggle |
| state_selection | Status bubbles with the full dropdown | Exposes every state; label hidden by default |
| project_task_state_selection | Project task states with waiting logic | State machine aware, restricts choices for waiting tasks |
task_done_checkmark | Boolean done flags on project milestones | Same idea built on boolean_toggle rather than a selection |
| boolean_toggle | Plain self-saving switches | Generic toggle, no state memory |
Frequently asked questions
What field does todo_done_checkmark work on?+
Does ticking a to-do save immediately?+
What happens when I untick a done to-do?+
Why does the checkmark wait until my mouse leaves to update?+
Is todo_done_checkmark the same as task_done_checkmark?+
Anything changing in Odoo 20?+
To-dos fine, but tasks stuck?
A tidy done-circle will not fix a messy task flow. We configure Odoo project and to-do workflows end to end: states, automations, recurring tasks, and the reporting that shows what actually got done, on Odoo 16 through 19.
Book a free consultation