OdooWiki OCA HUB

Base Sub State

base_substate folder_open OCA/server-ux open_in_new
Tools License: AGPL-3

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.0

This 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

basemail

Menus it adds

Sub State Configurationmenu_base_substate_typemenu_target_state_valuemenu_base_substate
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-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation 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.0
  • You must install an application module depending this one (for example purchase_substate)

No verified information in OCA: Installation, Configuration.

info

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.