Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
e0806af
[ADD] base_substate
mourad-ehm Oct 3, 2019
c0ff736
[IMP] base_substate: black, isort, prettier
kittiu Aug 30, 2020
9f08ab2
[13.0][MIG] base_substate
kittiu Aug 30, 2020
c8bec42
[13.0][FIX] base_substate: Fix archived button
newtratip May 8, 2021
7474962
[IMP] update dotfiles
sbidoul May 15, 2021
2d504c9
[IMP] base_substate: black, isort, prettier
alexeirivera87 Dec 22, 2021
9a16e96
[MIG] base_substate: Migration to 15.0
alexeirivera87 Dec 22, 2021
e297d17
[MIG] base_substate: Migration to 16.0
Dec 14, 2022
4098c0d
Added translation using Weblate (Spanish)
Ivorra78 Nov 11, 2023
ad7d4cf
Added translation using Weblate (Italian)
mymage Dec 31, 2023
fc1c6fb
[IMP] base_substate: pre-commit stuff
Wodran14 Apr 12, 2024
1bd65f5
[MIG] base_substate: Migration to 17.0
Wodran14 Apr 12, 2024
bbaccc0
[UPD] Update base_substate.pot
Sep 11, 2024
5edbc63
[BOT] post-merge updates
OCA-git-bot Sep 11, 2024
d602ac7
Update translation files
weblate Sep 11, 2024
5013029
[FIX] base_substate: migrate track_template function
len-foss Dec 12, 2024
b9873c5
Translated using Weblate (Italian)
mymage Feb 21, 2025
cde9c47
[BOT] post-merge updates
OCA-git-bot Mar 18, 2025
d1298e2
[FIX] base_substate: send email template on substate
Saran440 Oct 24, 2023
08240d3
[MIG] base_substate: Migration to 18.0
Saran440 May 19, 2025
32873ee
[UPD] Update base_substate.pot
Jun 14, 2025
f8b3390
[BOT] post-merge updates
OCA-git-bot Jun 14, 2025
4914d20
Added translation using Weblate (Dutch)
bosd Jun 19, 2025
1793905
Translated using Weblate (Dutch)
bosd Jun 19, 2025
b1ffda7
[MIG] base_substate: Migration to 19.0
np-oerp Dec 3, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
101 changes: 101 additions & 0 deletions base_substate/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association

==============
Base Sub State
==============

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:0bc86fb6e27937efbc054d578f4900621ecb441b6c7a1f121bc0d79925b7a1f1
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--ux-lightgray.png?logo=github
:target: https://github.com/OCA/server-ux/tree/19.0/base_substate
:alt: OCA/server-ux
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/server-ux-19-0/server-ux-19-0-base_substate
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/server-ux&target_branch=19.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

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

**Table of contents**

.. contents::
:local:

Usage
=====

1. You must install an application module depending this one (for
example purchase_substate)

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/server-ux/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/server-ux/issues/new?body=module:%20base_substate%0Aversion:%2019.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
-------

* Akretion

Contributors
------------

- Mourad EL HADJ MIMOUNE <[email protected]>
- Kitti U. <[email protected]>
- Alexei Rivera <[email protected]> (migration to 15.0)
- Saran Lim. [email protected]
- Nishi Patel [email protected]

Maintainers
-----------

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org

OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.

This module is part of the `OCA/server-ux <https://github.com/OCA/server-ux/tree/19.0/base_substate>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
1 change: 1 addition & 0 deletions base_substate/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import models
21 changes: 21 additions & 0 deletions base_substate/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Copyright 2020 Akretion (<http://www.akretion.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
# Copyright 2025 OERP Canada <https://www.oerp.ca>

{
"name": "Base Sub State",
"version": "19.0.1.0.0",
"category": "Tools",
"author": "Akretion, Odoo Community Association (OCA)",
"website": "https://github.com/OCA/server-ux",
"license": "AGPL-3",
"depends": ["base", "mail"],
"data": [
"security/base_substate_security.xml",
"security/ir.model.access.csv",
"views/base_substate_type_views.xml",
"views/base_substate_value_views.xml",
"views/base_substate_views.xml",
],
"installable": True,
}
205 changes: 205 additions & 0 deletions base_substate/i18n/base_substate.pot
Original file line number Diff line number Diff line change
@@ -0,0 +1,205 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * base_substate
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"

#. module: base_substate
#: model:ir.model.fields,field_description:base_substate.field_base_substate__active
msgid "Active"
msgstr ""

#. module: base_substate
#: model:ir.model.fields,field_description:base_substate.field_base_substate__model
#: model:ir.model.fields,field_description:base_substate.field_base_substate_type__model
#: model:ir.model.fields,field_description:base_substate.field_target_state_value__model
msgid "Apply on"
msgstr ""

#. module: base_substate
#: model_terms:ir.ui.view,arch_db:base_substate.base_substate_view_form
msgid "Archived"
msgstr ""

#. module: base_substate
#: model:ir.actions.act_window,name:base_substate.act_open_base_substate_view
#: model:ir.model,name:base_substate.model_base_substate
#: model:ir.ui.menu,name:base_substate.menu_base_substate
#: model_terms:ir.ui.view,arch_db:base_substate.base_substate_view_form
#: model_terms:ir.ui.view,arch_db:base_substate.base_substate_view_search
msgid "Base Substate"
msgstr ""

#. module: base_substate
#: model:ir.model,name:base_substate.model_base_substate_type
msgid "Base Substate Type"
msgstr ""

#. module: base_substate
#: model:ir.model,name:base_substate.model_base_substate_mixin
msgid "BaseSubstate Mixin"
msgstr ""

#. module: base_substate
#: model:ir.model.fields,field_description:base_substate.field_base_substate__create_uid
#: model:ir.model.fields,field_description:base_substate.field_base_substate_type__create_uid
#: model:ir.model.fields,field_description:base_substate.field_target_state_value__create_uid
msgid "Created by"
msgstr ""

#. module: base_substate
#: model:ir.model.fields,field_description:base_substate.field_base_substate__create_date
#: model:ir.model.fields,field_description:base_substate.field_base_substate_type__create_date
#: model:ir.model.fields,field_description:base_substate.field_target_state_value__create_date
msgid "Created on"
msgstr ""

#. module: base_substate
#: model:ir.model.fields,field_description:base_substate.field_base_substate__description
msgid "Description"
msgstr ""

#. module: base_substate
#: model:ir.model.fields,field_description:base_substate.field_base_substate__display_name
#: model:ir.model.fields,field_description:base_substate.field_base_substate_type__display_name
#: model:ir.model.fields,field_description:base_substate.field_target_state_value__display_name
msgid "Display Name"
msgstr ""

#. module: base_substate
#: model:ir.model.fields,field_description:base_substate.field_base_substate__mail_template_id
msgid "Email Template"
msgstr ""

#. module: base_substate
#: model:ir.model.fields,help:base_substate.field_base_substate__sequence
msgid "Gives the sequence order when applying the default substate"
msgstr ""

#. module: base_substate
#: model:ir.model.fields,field_description:base_substate.field_base_substate__id
#: model:ir.model.fields,field_description:base_substate.field_base_substate_type__id
#: model:ir.model.fields,field_description:base_substate.field_target_state_value__id
msgid "ID"
msgstr ""

#. module: base_substate
#: model:ir.model.fields,help:base_substate.field_base_substate__mail_template_id
msgid ""
"If set, an email will be sent to the partner when the object reaches this "
"substate."
msgstr ""

#. module: base_substate
#: model:ir.model.fields,field_description:base_substate.field_base_substate__write_uid
#: model:ir.model.fields,field_description:base_substate.field_base_substate_type__write_uid
#: model:ir.model.fields,field_description:base_substate.field_target_state_value__write_uid
msgid "Last Updated by"
msgstr ""

#. module: base_substate
#: model:ir.model.fields,field_description:base_substate.field_base_substate__write_date
#: model:ir.model.fields,field_description:base_substate.field_base_substate_type__write_date
#: model:ir.model.fields,field_description:base_substate.field_target_state_value__write_date
msgid "Last Updated on"
msgstr ""

#. module: base_substate
#: model:ir.model.fields,help:base_substate.field_base_substate__model
#: model:ir.model.fields,help:base_substate.field_target_state_value__model
msgid "Model for technical use"
msgstr ""

#. module: base_substate
#: model:ir.model.fields,field_description:base_substate.field_base_substate_type__name
msgid "Name"
msgstr ""

#. module: base_substate
#: model:ir.model.fields,field_description:base_substate.field_base_substate__sequence
msgid "Sequence"
msgstr ""

#. module: base_substate
#: model:ir.model.fields,field_description:base_substate.field_base_substate_mixin__substate_id
msgid "Sub State"
msgstr ""

#. module: base_substate
#: model:ir.ui.menu,name:base_substate.menu_substate_config
msgid "Sub State Configuration"
msgstr ""

#. module: base_substate
#: model:ir.actions.act_window,name:base_substate.act_open_base_substate_type_view
#: model:ir.ui.menu,name:base_substate.menu_base_substate_type
#: model_terms:ir.ui.view,arch_db:base_substate.base_substate_type_view_form
#: model_terms:ir.ui.view,arch_db:base_substate.base_substate_type_view_search
msgid "Sub State Type"
msgstr ""

#. module: base_substate
#: model:ir.model.fields,field_description:base_substate.field_base_substate__name
msgid "Substate Name"
msgstr ""

#. module: base_substate
#: model:ir.model.fields,field_description:base_substate.field_target_state_value__base_substate_type_id
msgid "Substate Type"
msgstr ""

#. module: base_substate
#: model:res.groups,name:base_substate.group_substate_manager
msgid "Substate manager"
msgstr ""

#. module: base_substate
#: model:ir.model.fields,field_description:base_substate.field_base_substate_type__target_state_field
msgid "Target State Field"
msgstr ""

#. module: base_substate
#: model:ir.actions.act_window,name:base_substate.act_open_target_state_value_view
#: model:ir.model,name:base_substate.model_target_state_value
#: model:ir.model.fields,field_description:base_substate.field_base_substate__target_state_value_id
#: model:ir.model.fields,field_description:base_substate.field_target_state_value__target_state_value
#: model:ir.ui.menu,name:base_substate.menu_target_state_value
#: model_terms:ir.ui.view,arch_db:base_substate.target_state_value_view_form
#: model_terms:ir.ui.view,arch_db:base_substate.target_state_value_view_search
msgid "Target State Value"
msgstr ""

#. module: base_substate
#: model:ir.model.fields,field_description:base_substate.field_target_state_value__name
msgid "Target state Name"
msgstr ""

#. module: base_substate
#: model:ir.model.fields,help:base_substate.field_target_state_value__name
msgid ""
"Target state translateble name.\n"
"Ex: for sale order \"Quotation\", \"Sale order\", \"Locked\"..."
msgstr ""

#. module: base_substate
#: model:ir.model.fields,help:base_substate.field_base_substate_type__target_state_field
msgid ""
"Technical target state field name. Ex for sale order \"state\" for other "
"\"status\" ... "
msgstr ""

#. module: base_substate
#: model:ir.model.fields,help:base_substate.field_target_state_value__target_state_value
msgid ""
"Technical target state value.\n"
"Ex: for sale order \"draft\", \"sale\", \"done\", ..."
msgstr ""
Loading