boolean_toggle_load
A list toggle that writes two fields instead of one. The second is a technical flag telling the server which level triggered the change, which its own comment explains.
| Technical name | boolean_toggle_load |
|---|---|
| Field types | boolean |
| Views | list |
| Module | hr_skills, employee skills |
| Used in core | Skill level lists in hr_skills |
| Versions | Odoo 20.0, Odoo 19.0, Odoo 18.0, Odoo 17.0 |
| No-code setup | No. It is set in view XML and depends on module-specific data |
| Alternatives | boolean_toggle, boolean_update_flag, boolean, many2many_tags_skills |
What the default level toggle does
What this means for your team
Supported options in Odoo 19
| Option | Type | What it does |
|---|---|---|
technical_is_new_default | field written by literal name | Written alongside the toggled field with the same value, so the server can tell which level the user actually changed. Its name is fixed in the source.(since Odoo 17.0) |
autosave | boolean | Inherited from the list toggle. Governs whether the paired write is saved immediately.(default: true) |
The second field name is hardcoded. It is written literally in the update alongside the toggled field, so the widget only behaves correctly on a model carrying that field. Reusing it elsewhere writes a field that does not exist.
Working examples
Two keys in one write
Version compatibility
| Version | Status | Notes |
|---|---|---|
| Odoo 20.0 | In development | Not released. Behavior unchanged on the development branch. |
| Odoo 19.0 | Verified | Verified against the shipped source. |
| Odoo 18.0 | Verified | Same paired write. |
| Odoo 17.0 | Verified | First version. |
| Odoo 16.0 | Not available | Widget does not exist. |
Upgrade note. The widget arrived in Odoo 17 and needs no view change. Its internals differ slightly between versions, so a customization of the change handler is more likely to need attention than a view.
What is changing in Odoo 20
Common problems and fixes
| Symptom | Cause and fix |
|---|---|
| Toggling one level does not clear the others | The technical flag is not reaching the server, so the cascade cannot tell where the change came from. Check the model carries that field and that the widget is in use. |
| An error about an unknown field | The widget was used on a model without the technical field, whose name is hardcoded. Use it only on the skills level model, or copy the widget with your own field name. |
| The change is not saved | The inherited autosave option was turned off. Leave it on, or save the form. |
| The toggle looks like a checkbox | A different widget is in use. Check the widget attribute on the field. |
| The cascade applies twice | Something else is also writing the technical field. Search for other writers on that field. |
| Missing widget error | The skills module is not installed in that database. Install it, or use the plain list toggle. |
Default level toggle vs the alternatives
| Widget | Best for | Key difference |
|---|---|---|
boolean_toggle_load | Toggles whose change must be distinguishable from a recomputation | Writes a technical origin flag alongside the value in a single update |
| boolean_toggle | Ordinary toggles | One key, and no way for the server to tell where the change came from |
boolean_update_flag | The same problem solved by comparison | Compares against a reference value rather than marking the origin |
| boolean | A plain checkbox | No toggle styling and no second write |
| many2many_tags_skills | Skills shown as tags | A relation rather than a level flag |
Frequently asked questions
Why does it write two fields?+
Can I use it on another model?+
Does it save immediately?+
Why not solve this on the server?+
Which versions have it?+
Skills data that stays consistent as it grows
Skill types, levels and the defaults behind them are configuration that quietly shapes every employee record. We implement Odoo HR skills and the reporting on top of it, on versions 16 through 19.
Book a free consultation