.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association
====================
Base Tier Validation
====================
..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:00426f6d3eb82d1b94c199a2c9e24fc1e219f1e89cf03ef6db393bd137e379f9
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Mature-brightgreen.png
:target: https://odoo-community.org/page/development-status
:alt: Mature
.. |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/18.0/base_tier_validation
: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-18-0/server-ux-18-0-base_tier_validation
: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=18.0
:alt: Try me on Runboat
|badge1| |badge2| |badge3| |badge4| |badge5|
Validating some operations is a common need across different areas in a
company and sometimes it also involves several people and stages in the
process. With this module you will be able to define your custom
validation workflows for any Odoo document.
This module does not provide a functionality by itself but an abstract
model to implement a validation process based on tiers on other models
(e.g. purchase orders, sales orders, budgets, expenses...).
**Note:** To be able to use this module in a new model you will need
some development.
See
`purchase_tier_validation <https://github.com/OCA/purchase-workflow>`__
as an example of implementation.
Additionally, if your state field is a (stored) computed field, you need
to set ``_tier_validation_state_field_is_computed`` to ``True`` in your
model Python file, and you will want to add the dependent fields of the
compute method in ``_get_after_validation_exceptions`` and
``_get_under_validation_exceptions``.
**Table of contents**
.. contents::
:local:
Configuration
=============
To configure this module, you need to:
1. Go to *Settings > Technical > Tier Validations > Tier Definition*.
2. Create as many tiers as you want for any model having tier validation
functionality.
**Note:**
- If check *Notify Reviewers on Creation*, all possible reviewers will
be notified by email when this definition is triggered.
- If check *Notify reviewers on reaching pending* if you want to send a
notification when pending status is reached. This is usefull in a
approve by sequence scenario to only notify reviewers when it is their
turn in the sequence.
- If check *Comment*, reviewers can comment after click Validate or
Reject.
- If check *Approve by sequence*, reviewers is forced to review by
specified sequence.
To configure Tier Validation Exceptions, you need to:
1. Go to *Settings > Technical > Tier Validations > Tier Validation
Exceptions*.
2. Create as many tiers validation exceptions as you want for any model
having tier validation functionality.
3. Add desired fields to be checked in *Fields*.
4. Add desired groups that can use this Exception in *Groups*.
5. You must check *Write under Validation*, *Write after Validation* or
both.
**Note:**
- If you don't create any exception, the Validated record will be
readonly and cannot be modified.
- If check *Write under Validation*, records will be able to be modified
only in the defined fields when the Validation process is ongoing.
- If check *Write after Validation*, records will be able to be modified
only in the defined fields when the Validation process is finished.
- If check *Write after Validation* and *Write under Validation*,
records will be able to be modified defined fields always.
Known issues / Roadmap
======================
This is the list of known issues for this module. Any proposal for
improvement will be very valuable.
- **Issue:**
When using approve_sequence option in any tier.definition there can be
inconsistencies in the systray notifications.
**Description:**
Field can_review in tier.review is used to filter out, in the systray
notifications, the reviews a user can approve. This can_review field
is updated **in the database** in method review_user_count, this can
make it very inconsistent for databases with a lot of users and
recurring updates that can change the expected behavior.
- **Migration to 15.0:**
The parameter \_tier_validation_manual_config will become False, on
14.0, the default value is True, as the change is applied after the
migration. In order to use the new behavior we need to modify the
value on our expected model.
Changelog
=========
17.0.1.0.0 (2024-01-10)
-----------------------
Migrated to Odoo 17. Merged module with tier_validation_waiting. To
support sending messages in a validation sequence when it is their turn
to validate.
14.0.1.0.0 (2020-11-19)
-----------------------
Migrated to Odoo 14.
13.0.1.2.2 (2020-08-30)
-----------------------
Fixes:
- When using approve_sequence option in any tier.definition there can be
inconsistencies in the systray notifications
- When using approve_sequence, still not approve only the needed
sequence, but also other sequence for the same approver
12.0.3.3.1 (2019-12-02)
-----------------------
Fixes:
- Show comment on Reviews Table.
- Edit notification with approve_sequence.
12.0.3.3.0 (2019-11-27)
-----------------------
New features:
- Add comment on Reviews Table.
- Approve by sequence.
12.0.3.2.1 (2019-11-26)
-----------------------
Fixes:
- Remove message_subscribe_users
12.0.3.2.0 (2019-11-25)
-----------------------
New features:
- Notify reviewers
12.0.3.1.0 (2019-07-08)
-----------------------
Fixes:
- Singleton error
12.0.3.0.0 (2019-12-02)
-----------------------
Fixes:
- Edit Reviews Table
12.0.2.1.0 (2019-05-29)
-----------------------
Fixes:
- Edit drop-down style width and position
12.0.2.0.0 (2019-05-28)
-----------------------
New features:
- Pass parameters as functions.
- Add Systray.
12.0.1.0.0 (2019-02-18)
-----------------------
Migrated to Odoo 12.
11.0.1.0.0 (2018-05-09)
-----------------------
Migrated to Odoo 11.
10.0.1.0.0 (2018-03-26)
-----------------------
Migrated to Odoo 10.
9.0.1.0.0 (2017-12-02)
----------------------
First version.
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_tier_validation%0Aversion:%2018.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
-------
* ForgeFlow
Contributors
------------
- Lois Rilo <lois.rilo@forgeflow.com>
- Naglis Jonaitis <naglis@versada.eu>
- Adrià Gil Sorribes <adria.gil@forgeflow.com>
- Pimolnat Suntian <pimolnats@ecosoft.co.th>
- Pedro Gonzalez <pedro.gonzalez@pesol.es>
- Kitti U. <kittiu@ecosoft.co.th>
- Saran Lim. <saranl@ecosoft.co.th>
- Carlos Lopez <celm1990@gmail.com>
- Javier Colmeiro <javier.colmeiro@braintec.com>
- bosd
- Evan Soh <evan.soh@omnisoftsolution.com>
- Manuel Regidor <manuel.regidor@sygel.es>
- Eduardo de Miguel <edu@moduon.team>
- `XCG Consulting <https://xcg-consulting.fr>`__:
- Houzéfa Abbasbhay
- Stefan Rijnhart <stefan@opener.amsterdam>
- Kevin Khao <kevinkhao@gmail.com>
- Do Anh Duy <duyda@trobz.com>
Other credits
-------------
The migration of this module from 17.0 to 18.0 was financially supported
by Camptocamp.
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.
.. |maintainer-LoisRForgeFlow| image:: https://github.com/LoisRForgeFlow.png?size=40px
:target: https://github.com/LoisRForgeFlow
:alt: LoisRForgeFlow
Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:
|maintainer-LoisRForgeFlow|
This module is part of the `OCA/server-ux <https://github.com/OCA/server-ux/tree/18.0/base_tier_validation>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
Raw data
{
"_id": null,
"home_page": "https://github.com/OCA/server-ux",
"name": "odoo-addon-base-tier-validation",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": null,
"author": "ForgeFlow, Odoo Community Association (OCA)",
"author_email": "support@odoo-community.org",
"download_url": null,
"platform": null,
"description": ".. image:: https://odoo-community.org/readme-banner-image\n :target: https://odoo-community.org/get-involved?utm_source=readme\n :alt: Odoo Community Association\n\n====================\nBase Tier Validation\n====================\n\n.. \n !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n !! This file is generated by oca-gen-addon-readme !!\n !! changes will be overwritten. !!\n !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n !! source digest: sha256:00426f6d3eb82d1b94c199a2c9e24fc1e219f1e89cf03ef6db393bd137e379f9\n !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n.. |badge1| image:: https://img.shields.io/badge/maturity-Mature-brightgreen.png\n :target: https://odoo-community.org/page/development-status\n :alt: Mature\n.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png\n :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html\n :alt: License: AGPL-3\n.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--ux-lightgray.png?logo=github\n :target: https://github.com/OCA/server-ux/tree/18.0/base_tier_validation\n :alt: OCA/server-ux\n.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png\n :target: https://translation.odoo-community.org/projects/server-ux-18-0/server-ux-18-0-base_tier_validation\n :alt: Translate me on Weblate\n.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png\n :target: https://runboat.odoo-community.org/builds?repo=OCA/server-ux&target_branch=18.0\n :alt: Try me on Runboat\n\n|badge1| |badge2| |badge3| |badge4| |badge5|\n\nValidating some operations is a common need across different areas in a\ncompany and sometimes it also involves several people and stages in the\nprocess. With this module you will be able to define your custom\nvalidation workflows for any Odoo document.\n\nThis module does not provide a functionality by itself but an abstract\nmodel to implement a validation process based on tiers on other models\n(e.g. purchase orders, sales orders, budgets, expenses...).\n\n**Note:** To be able to use this module in a new model you will need\nsome development.\n\nSee\n`purchase_tier_validation <https://github.com/OCA/purchase-workflow>`__\nas an example of implementation.\n\nAdditionally, if your state field is a (stored) computed field, you need\nto set ``_tier_validation_state_field_is_computed`` to ``True`` in your\nmodel Python file, and you will want to add the dependent fields of the\ncompute method in ``_get_after_validation_exceptions`` and\n``_get_under_validation_exceptions``.\n\n**Table of contents**\n\n.. contents::\n :local:\n\nConfiguration\n=============\n\nTo configure this module, you need to:\n\n1. Go to *Settings > Technical > Tier Validations > Tier Definition*.\n2. Create as many tiers as you want for any model having tier validation\n functionality.\n\n**Note:**\n\n- If check *Notify Reviewers on Creation*, all possible reviewers will\n be notified by email when this definition is triggered.\n- If check *Notify reviewers on reaching pending* if you want to send a\n notification when pending status is reached. This is usefull in a\n approve by sequence scenario to only notify reviewers when it is their\n turn in the sequence.\n- If check *Comment*, reviewers can comment after click Validate or\n Reject.\n- If check *Approve by sequence*, reviewers is forced to review by\n specified sequence.\n\nTo configure Tier Validation Exceptions, you need to:\n\n1. Go to *Settings > Technical > Tier Validations > Tier Validation\n Exceptions*.\n2. Create as many tiers validation exceptions as you want for any model\n having tier validation functionality.\n3. Add desired fields to be checked in *Fields*.\n4. Add desired groups that can use this Exception in *Groups*.\n5. You must check *Write under Validation*, *Write after Validation* or\n both.\n\n**Note:**\n\n- If you don't create any exception, the Validated record will be\n readonly and cannot be modified.\n- If check *Write under Validation*, records will be able to be modified\n only in the defined fields when the Validation process is ongoing.\n- If check *Write after Validation*, records will be able to be modified\n only in the defined fields when the Validation process is finished.\n- If check *Write after Validation* and *Write under Validation*,\n records will be able to be modified defined fields always.\n\nKnown issues / Roadmap\n======================\n\nThis is the list of known issues for this module. Any proposal for\nimprovement will be very valuable.\n\n- **Issue:**\n\n When using approve_sequence option in any tier.definition there can be\n inconsistencies in the systray notifications.\n\n **Description:**\n\n Field can_review in tier.review is used to filter out, in the systray\n notifications, the reviews a user can approve. This can_review field\n is updated **in the database** in method review_user_count, this can\n make it very inconsistent for databases with a lot of users and\n recurring updates that can change the expected behavior.\n\n- **Migration to 15.0:**\n\n The parameter \\_tier_validation_manual_config will become False, on\n 14.0, the default value is True, as the change is applied after the\n migration. In order to use the new behavior we need to modify the\n value on our expected model.\n\nChangelog\n=========\n\n17.0.1.0.0 (2024-01-10)\n-----------------------\n\nMigrated to Odoo 17. Merged module with tier_validation_waiting. To\nsupport sending messages in a validation sequence when it is their turn\nto validate.\n\n14.0.1.0.0 (2020-11-19)\n-----------------------\n\nMigrated to Odoo 14.\n\n13.0.1.2.2 (2020-08-30)\n-----------------------\n\nFixes:\n\n- When using approve_sequence option in any tier.definition there can be\n inconsistencies in the systray notifications\n- When using approve_sequence, still not approve only the needed\n sequence, but also other sequence for the same approver\n\n12.0.3.3.1 (2019-12-02)\n-----------------------\n\nFixes:\n\n- Show comment on Reviews Table.\n- Edit notification with approve_sequence.\n\n12.0.3.3.0 (2019-11-27)\n-----------------------\n\nNew features:\n\n- Add comment on Reviews Table.\n- Approve by sequence.\n\n12.0.3.2.1 (2019-11-26)\n-----------------------\n\nFixes:\n\n- Remove message_subscribe_users\n\n12.0.3.2.0 (2019-11-25)\n-----------------------\n\nNew features:\n\n- Notify reviewers\n\n12.0.3.1.0 (2019-07-08)\n-----------------------\n\nFixes:\n\n- Singleton error\n\n12.0.3.0.0 (2019-12-02)\n-----------------------\n\nFixes:\n\n- Edit Reviews Table\n\n12.0.2.1.0 (2019-05-29)\n-----------------------\n\nFixes:\n\n- Edit drop-down style width and position\n\n12.0.2.0.0 (2019-05-28)\n-----------------------\n\nNew features:\n\n- Pass parameters as functions.\n- Add Systray.\n\n12.0.1.0.0 (2019-02-18)\n-----------------------\n\nMigrated to Odoo 12.\n\n11.0.1.0.0 (2018-05-09)\n-----------------------\n\nMigrated to Odoo 11.\n\n10.0.1.0.0 (2018-03-26)\n-----------------------\n\nMigrated to Odoo 10.\n\n9.0.1.0.0 (2017-12-02)\n----------------------\n\nFirst version.\n\nBug Tracker\n===========\n\nBugs are tracked on `GitHub Issues <https://github.com/OCA/server-ux/issues>`_.\nIn case of trouble, please check there if your issue has already been reported.\nIf you spotted it first, help us to smash it by providing a detailed and welcomed\n`feedback <https://github.com/OCA/server-ux/issues/new?body=module:%20base_tier_validation%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.\n\nDo not contact contributors directly about support or help with technical issues.\n\nCredits\n=======\n\nAuthors\n-------\n\n* ForgeFlow\n\nContributors\n------------\n\n- Lois Rilo <lois.rilo@forgeflow.com>\n- Naglis Jonaitis <naglis@versada.eu>\n- Adri\u00e0 Gil Sorribes <adria.gil@forgeflow.com>\n- Pimolnat Suntian <pimolnats@ecosoft.co.th>\n- Pedro Gonzalez <pedro.gonzalez@pesol.es>\n- Kitti U. <kittiu@ecosoft.co.th>\n- Saran Lim. <saranl@ecosoft.co.th>\n- Carlos Lopez <celm1990@gmail.com>\n- Javier Colmeiro <javier.colmeiro@braintec.com>\n- bosd\n- Evan Soh <evan.soh@omnisoftsolution.com>\n- Manuel Regidor <manuel.regidor@sygel.es>\n- Eduardo de Miguel <edu@moduon.team>\n- `XCG Consulting <https://xcg-consulting.fr>`__:\n\n - Houz\u00e9fa Abbasbhay\n\n- Stefan Rijnhart <stefan@opener.amsterdam>\n- Kevin Khao <kevinkhao@gmail.com>\n- Do Anh Duy <duyda@trobz.com>\n\nOther credits\n-------------\n\nThe migration of this module from 17.0 to 18.0 was financially supported\nby Camptocamp.\n\nMaintainers\n-----------\n\nThis module is maintained by the OCA.\n\n.. image:: https://odoo-community.org/logo.png\n :alt: Odoo Community Association\n :target: https://odoo-community.org\n\nOCA, or the Odoo Community Association, is a nonprofit organization whose\nmission is to support the collaborative development of Odoo features and\npromote its widespread use.\n\n.. |maintainer-LoisRForgeFlow| image:: https://github.com/LoisRForgeFlow.png?size=40px\n :target: https://github.com/LoisRForgeFlow\n :alt: LoisRForgeFlow\n\nCurrent `maintainer <https://odoo-community.org/page/maintainer-role>`__:\n\n|maintainer-LoisRForgeFlow| \n\nThis module is part of the `OCA/server-ux <https://github.com/OCA/server-ux/tree/18.0/base_tier_validation>`_ project on GitHub.\n\nYou are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.\n",
"bugtrack_url": null,
"license": "AGPL-3",
"summary": "Implement a validation process based on tiers.",
"version": "18.0.2.0.1.1",
"project_urls": {
"Homepage": "https://github.com/OCA/server-ux"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "fe7fa699d549a6d44f62c4f50ac9c8747e771eb00ce57ff492fccf0717977dc3",
"md5": "8b536beeb2ffc8c074e4d65b12040ae2",
"sha256": "a34a194b9a63a41d1f0f5b1395ad3799913d1465029f4815419996b86aa54532"
},
"downloads": -1,
"filename": "odoo_addon_base_tier_validation-18.0.2.0.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8b536beeb2ffc8c074e4d65b12040ae2",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 122560,
"upload_time": "2025-07-24T03:48:05",
"upload_time_iso_8601": "2025-07-24T03:48:05.006982Z",
"url": "https://files.pythonhosted.org/packages/fe/7f/a699d549a6d44f62c4f50ac9c8747e771eb00ce57ff492fccf0717977dc3/odoo_addon_base_tier_validation-18.0.2.0.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-24 03:48:05",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "OCA",
"github_project": "server-ux",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "openupgradelib",
"specs": []
}
],
"lcname": "odoo-addon-base-tier-validation"
}