mrp_workorder_popover
An icon on a work order that explains what is holding it up, with a button that replans it on the spot. Built on the inventory popover, and split in two on the next branch.
| Technical name | mrp_workorder_popover |
|---|---|
| Field types | char |
| Views | list, form |
| Module | mrp, the Manufacturing app |
| Used in core | Work order lines in the Manufacturing views |
| Versions | Odoo 19.0, Odoo 18.0, Odoo 17.0, Odoo 16.0 |
| No-code setup | No. It is set in view XML and depends on module-specific data |
| Alternatives | popover_widget, stock_rescheduling_popover, actionable_errors, mrp_should_consume |
What the work order popover does
What this means for your team
Supported options in Odoo 19
| Option | Type | What it does |
|---|---|---|
replan | key in the JSON payload | Decides whether the popover offers a replan button. Documented in the source comment.(default: false) |
color | key in the JSON payload | The icon's color class. Setting it to the hidden class suppresses the icon entirely, which the source comment names explicitly. |
infos | key in the JSON payload | A list of message objects, each with its own text and color, rendered in the popover. |
position | key in the JSON payload | Inherited from the inventory popover. Which side the popover opens on, read once when the component starts.(default: top) |
Setting the color to the hidden class suppresses the icon. The source comment says so explicitly, and it is how a work order with nothing to report avoids showing an empty marker. That is a payload decision rather than a view one.
Working examples
Replanning moves more than one order
Version compatibility
| Version | Status | Notes |
|---|---|---|
| Odoo 20.0 | Not available | Not released. No registration under this name; the responsibilities are split into two new widgets. |
| Odoo 19.0 | Verified | Verified against the shipped source. |
| Odoo 18.0 | Verified | Same contract and behavior. |
| Odoo 17.0 | Verified | Same behavior with older component conventions. |
| Odoo 16.0 | Verified | Same behavior with older component conventions. |
Upgrade note. The widget and its payload contract have been stable across Odoo 16 to 19, so server-side code producing these payloads carries over. The change to plan for is the split described below.
What is changing in Odoo 20
Common problems and fixes
| Symptom | Cause and fix |
|---|---|
| No icon appears | The payload sets the color to the hidden class, which is the documented way to suppress it. Expected for an order with nothing to report. |
| No replan button | The payload's replan flag is false. The server decides; check why the order is not considered replannable. |
| The whole list reloads after replanning | Intended. Replanning moves other work orders, so the model is reloaded. Nothing to fix; a partial refresh would show a stale schedule. |
| Messages have no color | Each message carries its own color key, which may be absent. Set it in the server-side payload. |
| The raw payload string is displayed | The widget name did not resolve, most likely on a version where it was split. Update the view to the replacement widgets. |
| An extension of the popover misbehaves | The popover subclass does not chain to the parent's initialization. Call through explicitly in your own subclass if you need the parent's setup. |
Work order popover vs the alternatives
| Widget | Best for | Key difference |
|---|---|---|
mrp_workorder_popover | Explaining a blocked work order and acting on it from the row | The inventory popover plus a replan action that reloads the whole model |
popover_widget | JSON-driven explanations with no action | The base widget, fully configurable from the payload |
| stock_rescheduling_popover | Rescheduling explanations in inventory | Another widget built on the same base |
| actionable_errors | Errors that come with an action | Buttons rather than explanatory text with one action |
| mrp_should_consume | Quantities on the same screens | A comparison rather than an explanation |
Frequently asked questions
How is the popover configured?+
How do I hide the icon?+
Why does the whole list reload after replanning?+
Does it take XML options?+
What happens in Odoo 20?+
Blocked work orders that explain themselves
Component shortages, sequencing and schedule drift all surface as a stalled order, and the difference is whether the screen says which. We implement Odoo Manufacturing planning and shop floor on versions 16 through 19.
Book a free consultation