event_state_selection
Events in Odoo carry a fourth kanban state, Cancelled, and event_state_selection is the widget built around it: icon-based states in a fixed order, a divider isolating the cancel action, and one surprising omission inherited from how it skips its parent's setup.
| Technical name | event_state_selection |
|---|---|
| Field types | selection |
| Views | form, kanban |
| Module | event |
| Used in core | 2 occurrences across 1 module: the event form title area and the event kanban footer in event |
| Versions | Odoo 20.0, Odoo 19.0 |
| No-code setup | No. Applied in XML; Studio does not list it |
| Alternatives | state_selection, hr_applicant_state_selection, event_icon_selection |
What the Event state widget does
What this means for your team
Supported options in Odoo 19
| Option | Type | What it does |
|---|---|---|
autosave | boolean | Inherited from state_selection. Picking a state saves the whole record immediately, other pending edits included, unless you pass {'autosave': False}.(default: true)(since Odoo 19.0) |
hide_label | boolean | Inherited from state_selection. The label renders only when you explicitly pass {'hide_label': False}; the text then follows the widget's own four-value mapping through formatSelection.(default: true (label hidden))(since Odoo 19.0) |
No hotkeys on this one. Unlike its siblings, the widget's setup() does not invoke the parent's, and the parent's setup is where the form-view command palette entries with the Alt+D/F/G hotkeys are registered. The dropdown works normally; the keyboard shortcuts silently do not exist.
Working examples
What skipping the parent setup really drops
Version compatibility
| Version | Status | Notes |
|---|---|---|
| Odoo 20.0 | In development | Not released. Icon font migration only on the development branch; see below. |
| Odoo 19.0 | Verified | Widget introduced together with the cancel state value. Verified against the shipped source. |
| Odoo 18.0 | Not available | Widget does not exist; events used the generic state_selection with three values. |
| Odoo 17.0 | Not available | Widget does not exist. |
| Odoo 16.0 | Not available | Widget does not exist. |
Upgrade note. The widget and the cancel state value both arrive in Odoo 19. Views migrated from 18 that still name state_selection keep working but render Cancelled with the generic gray bullet and keep it mixed into the dropdown without the divider.
What is changing in Odoo 20
Common problems and fixes
| Symptom | Cause and fix |
|---|---|
| Alt+D, Alt+F or Alt+G do nothing on the event form | The widget's setup skips the parent's, where those command palette entries are registered. Expected behavior in 19 and on the development branch; use the dropdown or the command palette by name. |
| A custom selection value never appears in the dropdown | The options getter maps a hardcoded normal/done/blocked/cancel list; other values are dropped from the menu. Extend the widget in JS if you add states; the button still displays an active unknown value. |
| The state resets by itself after stage changes | kanban_state on event.event is a stored compute with readonly=False; stage movements recompute it. Expected; manual choices hold until the next recompute trigger. |
| Cancelled renders as a gray bullet, not a red cross | The view still uses the generic state_selection widget from a pre-19 customization. Switch the field to widget="event_state_selection". |
| Choosing a state saves the form mid-edit | The inherited autosave option defaults to true. Pass options="{'autosave': False}" where the change should stay pending. |
Event state widget vs the alternatives
| Widget | Best for | Key difference |
|---|---|---|
event_state_selection | The four-value event kanban state, including cancellation, on event.event | Icon-per-state rendering with a hardcoded order and divider, at the cost of the family's hotkeys |
| state_selection | The standard three-value kanban_state on generic models | Colored bullets, full hotkey support, keeps every selection value in the menu |
| hr_applicant_state_selection | Recruitment's four-value applicant state | Adds a color rather than icons and keeps the parent's setup, hotkeys included |
| event_icon_selection | Read-only status icons on event communication rows | Pure display widget with an XML-defined icon map, no editing at all |
Frequently asked questions
What is the event_state_selection widget in Odoo?+
Why do the state hotkeys work on tasks but not on events?+
Can I add my own state to the event dropdown?+
Does picking a state save the event immediately?+
What changes for event_state_selection in Odoo 20?+
Event operations without dropped balls?
We configure Odoo Events for organizers who run real calendars: state flows with cancellation handling, automated attendee communication, and kanban boards your whole team steers by, across Odoo 16 to 19.
Upgrade my event workflows