This module provide abstract models to manage customizable substates to be applied on different models (sale order, purchase, ...).
example:
- for the quotation state of a sale order we can define 3 substates "In negotiation", "Won" and "Lost".
- We can also send mail when the substate is reached.
It is not useful by itself. You can see an example of implementation in the 'purchase_substate' module. (purchase-workflow repository).
auto_awesome What this module does
AI-generated from the code · Odoo 19.0This module provides the technical foundation to add customizable sub-states (like "In negotiation", "Won", "Lost") to any Odoo record that has a state field, and to send an email when a record reaches a given sub-state. It is not useful on its own; it must be extended by another module.
This is a technical building block, not a standalone feature. It gives developers the pieces to add sub-states to any Odoo document that already has a status field (for example a sales order's state).
Configuration is done in a new "Sub State Configuration" menu, available to users with the "Substate manager" group. There you define three things: - Sub State Type: which model the sub-states apply to and the technical name of its status field. - Target State Value: the readable name of each status value (for example "Quotation" for the draft status). - Base Substate: the actual sub-states, with a name, description, order, the status value they belong to, and an optional email template.
On any model that uses the provided mixin, a "Sub State" field is added. It is automatically filled with the first sub-state matching the record's current status, and it is updated automatically when the status changes. Two checks prevent mistakes: a sub-state can only be used on the model it was defined for, and a sub-state must match the record's current status. If an email template is set on the sub-state, an email is posted when a record reaches it. Regular users can read the configuration; only managers can create or change it.
Depends on
Required by other modules
Menus it adds
Models and fields (4)
- base.substate · new modelname (Substate Name), model, active, sequence, description, mail_template_id (Email Template), target_state_value_id (Target State Value)
- base.substate.type · new modelname, model (Apply on), target_state_field
- target.state.value · new modelname (Target state Name), model, target_state_value, base_substate_type_id (Substate Type)
- base.substate.mixin · new modelsubstate_id (Sub State)
Text generated by AI (DeepSeek) from reading the Odoo 19.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 8 confirmed, 1 with no information of 9 versions.
Sources · Odoo 17.0
Confirmed on 2026-11-03 in branch 17.0 of OCA/server-ux.
terminal Installation and usage
OCA documentation · Odoo 19.0Usage
Source · Odoo 19.0- You must install an application module depending this one (for example purchase_substate)
No verified information in OCA: Installation, Configuration.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.