TIP: You can type at any time to perform a new search.
Base Sub State
base_substate · OCA/server-ux
- Repository
- OCA/server-ux · module folder · Try on Runboat
- Module version
- 1.0.1
- Category
- Tools
- Folder size
- 0.09 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/server-ux
- Last tracking update
- 2026-08-07 09:06:24
- Authors
- Akretion, Odoo Community Association (OCA)
- Maintainers
- Akretion, Odoo Community Association (OCA)
- Committers
- OCA-git-bot, oca-ci, bosd, Camille Morand
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- account_move_substate, sale_substate
- Description
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).
Code Analysis ⓘ
Views touched (9)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
base_substate_type_view_form |
base.substate.type | form | New | |
base_substate_type_view_list |
base.substate.type | list | New | |
base_substate_type_view_search |
base.substate.type | search | New | |
base_substate_view_form |
base.substate | form | New | |
base_substate_view_list |
base.substate | list | New | |
base_substate_view_search |
base.substate | search | New | |
target_state_value_view_form |
target.state.value | form | New | |
target_state_value_view_list |
target.state.value | list | New | |
target_state_value_view_search |
target.state.value | search | New |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (4)
New fields (7)
-
activeBooleandefault=True -
descriptionTexttranslate=True -
mail_template_idMany2one → mail.templatehelp='If set, an email will be sent to the partner when the object reaches this substate.'string='Email Template' args: 'mail.template' -
modelSelectionhelp='Model for technical use'readonly=Truerelated='target_state_value_id.model'store=True -
nameCharrequired=Truetranslate=True args: 'Substate Name' -
sequenceIntegerhelp='Gives the sequence order when applying the default substate'index=True -
target_state_value_idMany2one → target.state.valueondelete='restrict'string='Target State Value' args: 'target.state.value'
No public methods.
New fields (1)
-
substate_idMany2one → base.substatecopy=Falsedefault=<expr>domain=<expr>index=Trueondelete='restrict'string='Sub State'tracking=True args: 'base.substate'
-
check_substate_id_consistency(self)@api.constrains('substate_id') -
check_substate_id_value(self)@api.constrains('substate_id', _state_field) -
create(self, vals_list)@api.model_create_multi -
write(self, values)
New fields (3)
-
modelSelectionrequired=Trueselection=[]string='Apply on' -
nameCharrequired=Truetranslate=True -
target_state_fieldCharhelp='Technical target state field name. Ex for sale order "state" for other "status" ... 'required=True
No public methods.
New fields (4)
-
base_substate_type_idMany2one → base.substate.typeondelete='restrict'string='Substate Type' args: 'base.substate.type' -
modelSelectionhelp='Model for technical use'readonly=Truerelated='base_substate_type_id.model'store=True -
nameCharhelp='Target state translateble name.\nEx: for sale order "Quotation", "Sale order", "Locked"...'required=Truetranslate=True args: 'Target state Name' -
target_state_valueCharhelp='Technical target state value.\nEx: for sale order "draft", "sale", "done", ...'required=True
No public methods.
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…