upgrade_selection
A settings dropdown that only works on Enterprise. On Community it opens the upgrade dialog and, when that closes, puts the value back to a hardcoded default.
| Technical name | upgrade_selection |
|---|---|
| Field types | selection |
| Views | form |
| Module | pos_self_order, Point of Sale self ordering |
| Used in core | 1 occurrence, a Point of Sale configuration setting |
| Versions | Odoo 20.0, Odoo 19.0, Odoo 18.0, Odoo 17.0 |
| No-code setup | No. It is a settings widget tied to an edition check |
| Alternatives | selection, upgrade_boolean, radio |
What the upgrade selection does
What this means for your team
Supported options in Odoo 19
| Option | Type | What it does |
|---|---|---|
placeholder_field | field | Inherited from the selection widget. Shows another field's value as a hint while this one is empty. |
The reset value is hardcoded. When the upgrade dialog closes, the widget writes a specific literal value back into the input rather than restoring whatever was previously selected. That value is written into the source for this particular Point of Sale setting, which makes the widget non-portable to another selection.
Working examples
The hardcoded value it resets to
Version compatibility
| Version | Status | Notes |
|---|---|---|
| Odoo 20.0 | In development | Not released. Byte-identical to Odoo 19 on the development branch. |
| Odoo 19.0 | Verified | Verified against the shipped source. Identical to Odoo 18. |
| Odoo 18.0 | Verified | Identical behavior. |
| Odoo 17.0 | Verified | First version. |
| Odoo 16.0 | Not available | Widget does not exist. |
Upgrade note. The widget arrived in Odoo 17 and the Odoo 18 and Odoo 19 files are identical, so nothing needs attention in views. Its behavior depends on the edition rather than the version.
What is changing in Odoo 20
Common problems and fixes
| Symptom | Cause and fix |
|---|---|
| The upgrade dialog appears on every change | The database is not Enterprise, which is exactly what the widget checks. Expected. The setting cannot be enabled from the view. |
| The value resets to something I did not choose | The close callback writes a hardcoded literal rather than restoring the previous value. Expected for this setting; the value is written into the source. |
| Nothing happens on Enterprise | It behaves as a normal selection there, so the change simply applies. Nothing to fix. |
| Reusing it resets my field oddly | The hardcoded reset value belongs to the Point of Sale setting it was written for. Copy the widget with your own reset value, or use the boolean equivalent. |
| Missing widget error | The self-order module is not installed in that database. Install it, or use the plain selection widget. |
| The check can be bypassed | It reads client-side build information and is a presentation decision, not enforcement. Rely on server-side enforcement for anything that matters. |
Upgrade selection vs the alternatives
| Widget | Best for | Key difference |
|---|---|---|
upgrade_selection | Edition-gated settings shown as a dropdown | Opens the upgrade dialog on Community and resets the input to a hardcoded value |
| selection | Any ordinary selection | No edition check and no dialog |
| upgrade_boolean | The same pattern on a checkbox | A boolean rather than a dropdown |
| radio | Short choice lists | Radio buttons, again with no gating |
Frequently asked questions
Why does changing this setting open an upgrade dialog?+
Why does the value reset to something else?+
Can I make the setting work on Community?+
Is there a boolean version?+
Can I reuse it on another selection?+
Knowing which Odoo edition your plan actually needs
Edition-gated features shape license cost and implementation scope, and the boundary is not always where people assume. We map requirements against Community and Enterprise before the contract, not after.
Book a free consultation