diff --git a/account_move_tier_validation/README.rst b/account_move_tier_validation/README.rst deleted file mode 100644 index d5dff1d52..000000000 --- a/account_move_tier_validation/README.rst +++ /dev/null @@ -1,118 +0,0 @@ -.. image:: https://odoo-community.org/readme-banner-image - :target: https://odoo-community.org/get-involved?utm_source=readme - :alt: Odoo Community Association - -============================ -Account Move Tier Validation -============================ - -.. - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! This file is generated by oca-gen-addon-readme !! - !! changes will be overwritten. !! - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:240b0a698a68ca8ee01c8878b32017e270a657d163ba0ded55550cae919bb292 - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -.. |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%2Ftier--validation-lightgray.png?logo=github - :target: https://github.com/OCA/tier-validation/tree/19.0/account_move_tier_validation - :alt: OCA/tier-validation -.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/tier-validation-19-0/tier-validation-19-0-account_move_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/tier-validation&target_branch=19.0 - :alt: Try me on Runboat - -|badge1| |badge2| |badge3| |badge4| |badge5| - -This module extends the functionality of Account Move to support a tier -validation process. - -**Table of contents** - -.. contents:: - :local: - -Installation -============ - -This module depends on base_tier_validation. You can find it at -[OCA/server-ux](https://github.com/OCA/server-ux) - -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 Account Move model. - -Usage -===== - -To use this module, you need to: - -1. Create an Account Invoice triggering at least one "Tier Definition". -2. Click on Request Validation button. -3. Under the tab Reviews have a look to pending reviews and their - statuses. -4. Once all reviews are validated click on Post. - -Additional features: - -- You can filter the Account Invoices requesting your review through the - filter Needs my Review. -- User with rights to confirm the Account Invoice (validate all tiers - that would be generated) can directly do the operation, this is, there - is no need for her/him to request a validation. - -Bug Tracker -=========== - -Bugs are tracked on `GitHub 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 `_. - -Do not contact contributors directly about support or help with technical issues. - -Credits -======= - -Authors -------- - -* PESOL - -Contributors ------------- - -- Odoo Perú -- Tharathip Chaweewongphan -- `360ERP `__: - - - Kevin Khao - -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/tier-validation `_ project on GitHub. - -You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/account_move_tier_validation/__init__.py b/account_move_tier_validation/__init__.py deleted file mode 100644 index 94b058123..000000000 --- a/account_move_tier_validation/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -# Copyright <2020> PESOL -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) - -from . import models diff --git a/account_move_tier_validation/__manifest__.py b/account_move_tier_validation/__manifest__.py deleted file mode 100644 index 445d0d996..000000000 --- a/account_move_tier_validation/__manifest__.py +++ /dev/null @@ -1,16 +0,0 @@ -# Copyright <2020> PESOL -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) -{ - "name": "Account Move Tier Validation", - "summary": "Extends the functionality of Account Moves to " - "support a tier validation process.", - "version": "19.0.1.0.0", - "category": "Accounts", - "website": "https://github.com/OCA/tier-validation", - "author": "PESOL, Odoo Community Association (OCA)", - "license": "AGPL-3", - "application": False, - "installable": True, - "depends": ["account", "base_tier_validation"], - "data": ["views/account_move_view.xml"], -} diff --git a/account_move_tier_validation/i18n/account_move_tier_validation.pot b/account_move_tier_validation/i18n/account_move_tier_validation.pot deleted file mode 100644 index e6b2dfe52..000000000 --- a/account_move_tier_validation/i18n/account_move_tier_validation.pot +++ /dev/null @@ -1,180 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_move_tier_validation -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 19.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: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Bill" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__can_forward -msgid "Can Forward" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__can_review -msgid "Can Review" -msgstr "" - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Credit Note" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__display_name -#: model:ir.model.fields,field_description:account_move_tier_validation.field_tier_definition__display_name -msgid "Display Name" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__has_comment -msgid "Has Comment" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__hide_reviews -msgid "Hide Reviews" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__id -#: model:ir.model.fields,field_description:account_move_tier_validation.field_tier_definition__id -msgid "ID" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,help:account_move_tier_validation.field_account_move__has_comment -msgid "If set, Allow the reviewer to leave a comment on the review." -msgstr "" - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Invoice" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices Pending to Validate" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices validated and ready to be confirmed" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices where no validation has been requested" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices where validation has not started" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model,name:account_move_tier_validation.model_account_move -msgid "Journal Entry" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "My Accounts to review" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__need_validation -msgid "Need Validation" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Needs my Review" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__next_review -msgid "Next Review" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "No Validation Requested" -msgstr "" - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Refund" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__rejected_message -msgid "Rejected Message" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__require_authentication -msgid "Require Authentication" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__reviewer_ids -msgid "Reviewers" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model,name:account_move_tier_validation.model_tier_definition -msgid "Tier Definition" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__to_validate_message -msgid "To Validate Message" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Validated" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__validated_message -msgid "Validated Message" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Validation In Progress" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Validation Not Started" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__validation_status -msgid "Validation Status" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__review_ids -msgid "Validations" -msgstr "" diff --git a/account_move_tier_validation/i18n/ca.po b/account_move_tier_validation/i18n/ca.po deleted file mode 100644 index 3357e2bef..000000000 --- a/account_move_tier_validation/i18n/ca.po +++ /dev/null @@ -1,181 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_move_tier_validation -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" -"Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" -"Language-Team: none\n" -"Language: ca\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Bill" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__can_forward -msgid "Can Forward" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__can_review -msgid "Can Review" -msgstr "" - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Credit Note" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__display_name -#: model:ir.model.fields,field_description:account_move_tier_validation.field_tier_definition__display_name -msgid "Display Name" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__has_comment -msgid "Has Comment" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__hide_reviews -msgid "Hide Reviews" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__id -#: model:ir.model.fields,field_description:account_move_tier_validation.field_tier_definition__id -msgid "ID" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,help:account_move_tier_validation.field_account_move__has_comment -msgid "If set, Allow the reviewer to leave a comment on the review." -msgstr "" - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Invoice" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices Pending to Validate" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices validated and ready to be confirmed" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices where no validation has been requested" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices where validation has not started" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model,name:account_move_tier_validation.model_account_move -msgid "Journal Entry" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "My Accounts to review" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__need_validation -msgid "Need Validation" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Needs my Review" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__next_review -msgid "Next Review" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "No Validation Requested" -msgstr "" - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Refund" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__rejected_message -msgid "Rejected Message" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__require_authentication -msgid "Require Authentication" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__reviewer_ids -msgid "Reviewers" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model,name:account_move_tier_validation.model_tier_definition -msgid "Tier Definition" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__to_validate_message -msgid "To Validate Message" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Validated" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__validated_message -msgid "Validated Message" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Validation In Progress" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Validation Not Started" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__validation_status -msgid "Validation Status" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__review_ids -msgid "Validations" -msgstr "" diff --git a/account_move_tier_validation/i18n/de.po b/account_move_tier_validation/i18n/de.po deleted file mode 100644 index 2fd734f83..000000000 --- a/account_move_tier_validation/i18n/de.po +++ /dev/null @@ -1,185 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_move_tier_validation -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 18.0\n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-07-02 14:46+0000\n" -"Last-Translator: intero-chd \n" -"Language-Team: none\n" -"Language: de\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.15.2\n" - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Bill" -msgstr "Rechnung" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__can_forward -msgid "Can Forward" -msgstr "Kann weiterleiten" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__can_review -msgid "Can Review" -msgstr "Kann überprüfen" - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Credit Note" -msgstr "Gutschrift" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__display_name -#: model:ir.model.fields,field_description:account_move_tier_validation.field_tier_definition__display_name -msgid "Display Name" -msgstr "Anzeigename" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__has_comment -msgid "Has Comment" -msgstr "Hat einen Kommentar" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__hide_reviews -msgid "Hide Reviews" -msgstr "Überprüfungen ausblenden" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__id -#: model:ir.model.fields,field_description:account_move_tier_validation.field_tier_definition__id -msgid "ID" -msgstr "ID" - -#. module: account_move_tier_validation -#: model:ir.model.fields,help:account_move_tier_validation.field_account_move__has_comment -msgid "If set, Allow the reviewer to leave a comment on the review." -msgstr "" -"Wenn diese Option aktiviert ist, kann der Genehmiger einen Kommentar zur " -"Überprüfung hinterlassen." - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Invoice" -msgstr "Rechnung" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices Pending to Validate" -msgstr "Zur Überprüfung anstehende Rechnungen" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices validated and ready to be confirmed" -msgstr "Rechnungen wurden überprüft und können nun bestätigt werden" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices where no validation has been requested" -msgstr "Rechnungen, für die keine Überprüfung angefordert wurde" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices where validation has not started" -msgstr "Rechnungen, deren Überprüfung noch nicht begonnen hat" - -#. module: account_move_tier_validation -#: model:ir.model,name:account_move_tier_validation.model_account_move -msgid "Journal Entry" -msgstr "Journaleintrag" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "My Accounts to review" -msgstr "Meine Konten zur Überprüfung" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__need_validation -msgid "Need Validation" -msgstr "Überprüfung erforderlich" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Needs my Review" -msgstr "Muss von mir geprüft werden" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__next_review -msgid "Next Review" -msgstr "Nächste Überprüfung" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "No Validation Requested" -msgstr "Keine Überprüfung angefordert" - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Refund" -msgstr "Rückerstattung" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__rejected_message -msgid "Rejected Message" -msgstr "Abgelehnte Nachricht" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__require_authentication -msgid "Require Authentication" -msgstr "Authentifizierung erforderlich" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__reviewer_ids -msgid "Reviewers" -msgstr "Genehmiger" - -#. module: account_move_tier_validation -#: model:ir.model,name:account_move_tier_validation.model_tier_definition -msgid "Tier Definition" -msgstr "Genehmigungsstufen" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__to_validate_message -msgid "To Validate Message" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Validated" -msgstr "Validiert" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__validated_message -msgid "Validated Message" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Validation In Progress" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Validation Not Started" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__validation_status -msgid "Validation Status" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__review_ids -msgid "Validations" -msgstr "" diff --git a/account_move_tier_validation/i18n/es.po b/account_move_tier_validation/i18n/es.po deleted file mode 100644 index f4913f4b4..000000000 --- a/account_move_tier_validation/i18n/es.po +++ /dev/null @@ -1,216 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_move_tier_validation -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-10-29 10:31+0000\n" -"Last-Translator: Ivorra78 \n" -"Language-Team: none\n" -"Language: es\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.17\n" - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Bill" -msgstr "Factura" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__can_forward -msgid "Can Forward" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__can_review -msgid "Can Review" -msgstr "Puede Revisar" - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Credit Note" -msgstr "Nota de crédito" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__display_name -#: model:ir.model.fields,field_description:account_move_tier_validation.field_tier_definition__display_name -msgid "Display Name" -msgstr "Nombre para Mostrar" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__has_comment -msgid "Has Comment" -msgstr "Tiene Comentario" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__hide_reviews -msgid "Hide Reviews" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__id -#: model:ir.model.fields,field_description:account_move_tier_validation.field_tier_definition__id -msgid "ID" -msgstr "ID" - -#. module: account_move_tier_validation -#: model:ir.model.fields,help:account_move_tier_validation.field_account_move__has_comment -msgid "If set, Allow the reviewer to leave a comment on the review." -msgstr "" - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Invoice" -msgstr "Factura" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices Pending to Validate" -msgstr "Facturas Pendientes de Validar" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices validated and ready to be confirmed" -msgstr "Facturas validadas y listas para ser confirmadas" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices where no validation has been requested" -msgstr "Facturas en las que no se ha solicitado validación" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices where validation has not started" -msgstr "Facturas donde la validación no ha comenzado" - -#. module: account_move_tier_validation -#: model:ir.model,name:account_move_tier_validation.model_account_move -msgid "Journal Entry" -msgstr "Entrada de Diario" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "My Accounts to review" -msgstr "Mis cuentas para revisar" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__need_validation -msgid "Need Validation" -msgstr "Necesita validación" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Needs my Review" -msgstr "Necesita mi revisión" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__next_review -msgid "Next Review" -msgstr "Siguiente revisión" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "No Validation Requested" -msgstr "No se ha solicitado validación" - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Refund" -msgstr "Reembolso" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__rejected_message -msgid "Rejected Message" -msgstr "Mensaje rechazado" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__require_authentication -msgid "Require Authentication" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__reviewer_ids -msgid "Reviewers" -msgstr "Revisores" - -#. module: account_move_tier_validation -#: model:ir.model,name:account_move_tier_validation.model_tier_definition -msgid "Tier Definition" -msgstr "Definición de nivel" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__to_validate_message -msgid "To Validate Message" -msgstr "Para validar el mensaje" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Validated" -msgstr "Validado" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__validated_message -msgid "Validated Message" -msgstr "Mensaje validado" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Validation In Progress" -msgstr "Validación en curso" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Validation Not Started" -msgstr "Validación no iniciada" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__validation_status -msgid "Validation Status" -msgstr "Estado de la Validación" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__review_ids -msgid "Validations" -msgstr "Validaciones" - -#~ msgid "Rejected" -#~ msgstr "Rechazada" - -#~ msgid "Reject" -#~ msgstr "Rechazar" - -#~ msgid "Request Validation" -#~ msgstr "Solicitar Validación" - -#~ msgid "Restart Validation" -#~ msgstr "Reiniciar la validación" - -#~ msgid "Validate" -#~ msgstr "Validar" - -#~ msgid "" -#~ "This Invoice needs to be\n" -#~ " validated." -#~ msgstr "" -#~ "Esta factura necesita ser\n" -#~ " validada." - -#~ msgid " Operation has been rejected." -#~ msgstr "" -#~ " La operación ha sido rechazada." - -#~ msgid " Operation has been validated!" -#~ msgstr "" -#~ " La operación ha sido validada!" - -#~ msgid "Last Modified on" -#~ msgstr "Última modificación el" diff --git a/account_move_tier_validation/i18n/es_PA.po b/account_move_tier_validation/i18n/es_PA.po deleted file mode 100644 index cd45c0244..000000000 --- a/account_move_tier_validation/i18n/es_PA.po +++ /dev/null @@ -1,181 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_move_tier_validation -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" -"Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" -"Language-Team: none\n" -"Language: es_PA\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Bill" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__can_forward -msgid "Can Forward" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__can_review -msgid "Can Review" -msgstr "" - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Credit Note" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__display_name -#: model:ir.model.fields,field_description:account_move_tier_validation.field_tier_definition__display_name -msgid "Display Name" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__has_comment -msgid "Has Comment" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__hide_reviews -msgid "Hide Reviews" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__id -#: model:ir.model.fields,field_description:account_move_tier_validation.field_tier_definition__id -msgid "ID" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,help:account_move_tier_validation.field_account_move__has_comment -msgid "If set, Allow the reviewer to leave a comment on the review." -msgstr "" - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Invoice" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices Pending to Validate" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices validated and ready to be confirmed" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices where no validation has been requested" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices where validation has not started" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model,name:account_move_tier_validation.model_account_move -msgid "Journal Entry" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "My Accounts to review" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__need_validation -msgid "Need Validation" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Needs my Review" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__next_review -msgid "Next Review" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "No Validation Requested" -msgstr "" - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Refund" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__rejected_message -msgid "Rejected Message" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__require_authentication -msgid "Require Authentication" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__reviewer_ids -msgid "Reviewers" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model,name:account_move_tier_validation.model_tier_definition -msgid "Tier Definition" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__to_validate_message -msgid "To Validate Message" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Validated" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__validated_message -msgid "Validated Message" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Validation In Progress" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Validation Not Started" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__validation_status -msgid "Validation Status" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__review_ids -msgid "Validations" -msgstr "" diff --git a/account_move_tier_validation/i18n/fr.po b/account_move_tier_validation/i18n/fr.po deleted file mode 100644 index bf11168ce..000000000 --- a/account_move_tier_validation/i18n/fr.po +++ /dev/null @@ -1,190 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_move_tier_validation -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 16.0\n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2025-10-28 09:14+0000\n" -"Last-Translator: c2cdidier \n" -"Language-Team: none\n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 5.10.4\n" - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Bill" -msgstr "Facture" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__can_forward -msgid "Can Forward" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__can_review -msgid "Can Review" -msgstr "Revue possible" - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Credit Note" -msgstr "Avoir" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__display_name -#: model:ir.model.fields,field_description:account_move_tier_validation.field_tier_definition__display_name -msgid "Display Name" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__has_comment -msgid "Has Comment" -msgstr "A un commentaire" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__hide_reviews -msgid "Hide Reviews" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__id -#: model:ir.model.fields,field_description:account_move_tier_validation.field_tier_definition__id -msgid "ID" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,help:account_move_tier_validation.field_account_move__has_comment -msgid "If set, Allow the reviewer to leave a comment on the review." -msgstr "" - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Invoice" -msgstr "Facture" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices Pending to Validate" -msgstr "Factures en attente de validation" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices validated and ready to be confirmed" -msgstr "Factures validées et prêtes à être validées" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices where no validation has been requested" -msgstr "Factures sans validation demandée" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices where validation has not started" -msgstr "Factures avec validation non commencée" - -#. module: account_move_tier_validation -#: model:ir.model,name:account_move_tier_validation.model_account_move -msgid "Journal Entry" -msgstr "Pièce comptable" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "My Accounts to review" -msgstr "Mes comptes à revoir" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__need_validation -msgid "Need Validation" -msgstr "À valider" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Needs my Review" -msgstr "Mes revues à effectuer" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__next_review -msgid "Next Review" -msgstr "Prochaine revue" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "No Validation Requested" -msgstr "Aucune validation requise" - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Refund" -msgstr "Remboursement" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__rejected_message -msgid "Rejected Message" -msgstr "Message de refus" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__require_authentication -msgid "Require Authentication" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__reviewer_ids -msgid "Reviewers" -msgstr "Réfiseurs" - -#. module: account_move_tier_validation -#: model:ir.model,name:account_move_tier_validation.model_tier_definition -msgid "Tier Definition" -msgstr "Niveaux de validation" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__to_validate_message -msgid "To Validate Message" -msgstr "Message pour la validation" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Validated" -msgstr "Validé" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__validated_message -msgid "Validated Message" -msgstr "Message de validation" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Validation In Progress" -msgstr "Validation en cours" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Validation Not Started" -msgstr "Validation non débutée" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__validation_status -msgid "Validation Status" -msgstr "Statuts de validation" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__review_ids -msgid "Validations" -msgstr "Validations" - -#~ msgid "Rejected" -#~ msgstr "Refusé" - -#, python-format -#~ msgid "You are not allowed to write those fields" -#~ msgstr "Vous n'avez pas le droit de modifier ces champs" diff --git a/account_move_tier_validation/i18n/hr.po b/account_move_tier_validation/i18n/hr.po deleted file mode 100644 index 9c5c471eb..000000000 --- a/account_move_tier_validation/i18n/hr.po +++ /dev/null @@ -1,187 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_move_tier_validation -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 16.0\n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-06-17 11:24+0000\n" -"Last-Translator: Bole \n" -"Language-Team: none\n" -"Language: hr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " -"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.17\n" - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Bill" -msgstr "Račun" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__can_forward -msgid "Can Forward" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__can_review -msgid "Can Review" -msgstr "Može Ovjeriti" - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Credit Note" -msgstr "Odobrenje" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__display_name -#: model:ir.model.fields,field_description:account_move_tier_validation.field_tier_definition__display_name -msgid "Display Name" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__has_comment -msgid "Has Comment" -msgstr "Ima komentar" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__hide_reviews -msgid "Hide Reviews" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__id -#: model:ir.model.fields,field_description:account_move_tier_validation.field_tier_definition__id -msgid "ID" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,help:account_move_tier_validation.field_account_move__has_comment -msgid "If set, Allow the reviewer to leave a comment on the review." -msgstr "" - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Invoice" -msgstr "Račun" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices Pending to Validate" -msgstr "Računi čekaju za ovjeravanja" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices validated and ready to be confirmed" -msgstr "Ovjereni računi i čekaju potvrđivanje" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices where no validation has been requested" -msgstr "Računi na kojima nije zatražena ovjera" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices where validation has not started" -msgstr "Računi na kojima nije započela validacija" - -#. module: account_move_tier_validation -#: model:ir.model,name:account_move_tier_validation.model_account_move -msgid "Journal Entry" -msgstr "Zapis dnevnika" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "My Accounts to review" -msgstr "Moja konta za pregledati" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__need_validation -msgid "Need Validation" -msgstr "Potrebna ovjera" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Needs my Review" -msgstr "Potrebna moja ovjera" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__next_review -msgid "Next Review" -msgstr "Sljedeća ovjera" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "No Validation Requested" -msgstr "Ovjera nije zatražena" - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Refund" -msgstr "Povrat" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__rejected_message -msgid "Rejected Message" -msgstr "Poruka uz odbijanje" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__require_authentication -msgid "Require Authentication" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__reviewer_ids -msgid "Reviewers" -msgstr "Ovejritelji" - -#. module: account_move_tier_validation -#: model:ir.model,name:account_move_tier_validation.model_tier_definition -msgid "Tier Definition" -msgstr "Definicija granice" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__to_validate_message -msgid "To Validate Message" -msgstr "Poruka za ovjeru" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Validated" -msgstr "Ovjereno" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__validated_message -msgid "Validated Message" -msgstr "Poruka za ovjereno" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Validation In Progress" -msgstr "Ovjeravanje u tijeku" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Validation Not Started" -msgstr "Ovjeravanje nije započelo" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__validation_status -msgid "Validation Status" -msgstr "Status ovjeravanja" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__review_ids -msgid "Validations" -msgstr "Ovjeravanja" - -#~ msgid "Rejected" -#~ msgstr "Odbijeno" diff --git a/account_move_tier_validation/i18n/it.po b/account_move_tier_validation/i18n/it.po deleted file mode 100644 index 74fcc2ce7..000000000 --- a/account_move_tier_validation/i18n/it.po +++ /dev/null @@ -1,191 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_move_tier_validation -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 16.0\n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-05-14 15:45+0000\n" -"Last-Translator: mymage \n" -"Language-Team: none\n" -"Language: it\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.15.2\n" - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Bill" -msgstr "Fattura" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__can_forward -msgid "Can Forward" -msgstr "Può inoltrare" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__can_review -msgid "Can Review" -msgstr "Può revisionare" - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Credit Note" -msgstr "Nota di credito" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__display_name -#: model:ir.model.fields,field_description:account_move_tier_validation.field_tier_definition__display_name -msgid "Display Name" -msgstr "Nome visualizzato" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__has_comment -msgid "Has Comment" -msgstr "Ha commenti" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__hide_reviews -msgid "Hide Reviews" -msgstr "Nascondi revisioni" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__id -#: model:ir.model.fields,field_description:account_move_tier_validation.field_tier_definition__id -msgid "ID" -msgstr "ID" - -#. module: account_move_tier_validation -#: model:ir.model.fields,help:account_move_tier_validation.field_account_move__has_comment -msgid "If set, Allow the reviewer to leave a comment on the review." -msgstr "" -"Se attivata, consente al revisore di lasciare un commento nella revisione." - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Invoice" -msgstr "Fattura" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices Pending to Validate" -msgstr "Fatture in attesa di validazione" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices validated and ready to be confirmed" -msgstr "Fatture validate e in attesa di essere confermate" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices where no validation has been requested" -msgstr "Fatture per le quali non è stata richiesta la validazione" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices where validation has not started" -msgstr "Fatture per le quali non è iniziata la validazione" - -#. module: account_move_tier_validation -#: model:ir.model,name:account_move_tier_validation.model_account_move -msgid "Journal Entry" -msgstr "Registrazione contabile" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "My Accounts to review" -msgstr "Miei conti da revisionare" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__need_validation -msgid "Need Validation" -msgstr "Richiede conferma" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Needs my Review" -msgstr "Richiede la mia approvazione" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__next_review -msgid "Next Review" -msgstr "Prossima revisione" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "No Validation Requested" -msgstr "Validazione non richiesta" - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Refund" -msgstr "Rimborso" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__rejected_message -msgid "Rejected Message" -msgstr "Messaggio di rifiuto" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__require_authentication -msgid "Require Authentication" -msgstr "Richiede autenticazione" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__reviewer_ids -msgid "Reviewers" -msgstr "Revisori" - -#. module: account_move_tier_validation -#: model:ir.model,name:account_move_tier_validation.model_tier_definition -msgid "Tier Definition" -msgstr "Definizione livello" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__to_validate_message -msgid "To Validate Message" -msgstr "Messaggio per 'Da validare'" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Validated" -msgstr "Approvata" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__validated_message -msgid "Validated Message" -msgstr "Messaggio per 'Validata'" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Validation In Progress" -msgstr "Validazione in corso" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Validation Not Started" -msgstr "Validazione non iniziata" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__validation_status -msgid "Validation Status" -msgstr "Stato validazione" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__review_ids -msgid "Validations" -msgstr "Validazioni" - -#~ msgid "Rejected" -#~ msgstr "Respinto" - -#, python-format -#~ msgid "You are not allowed to write those fields" -#~ msgstr "Non si è autorizzati a scrivere quei campi" diff --git a/account_move_tier_validation/i18n/nl.po b/account_move_tier_validation/i18n/nl.po deleted file mode 100644 index bee3fbb43..000000000 --- a/account_move_tier_validation/i18n/nl.po +++ /dev/null @@ -1,188 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_move_tier_validation -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 18.0\n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-05-13 22:45+0000\n" -"Last-Translator: Bosd \n" -"Language-Team: none\n" -"Language: nl\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.15.2\n" - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Bill" -msgstr "Leveranciersfactuur" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__can_forward -msgid "Can Forward" -msgstr "Kan doorsturen" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__can_review -msgid "Can Review" -msgstr "Kan beoordelen" - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Credit Note" -msgstr "Creditnota" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__display_name -#: model:ir.model.fields,field_description:account_move_tier_validation.field_tier_definition__display_name -msgid "Display Name" -msgstr "Schermnaam" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__has_comment -msgid "Has Comment" -msgstr "Heeft opmerking" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__hide_reviews -msgid "Hide Reviews" -msgstr "Beoordelingen verbergen" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__id -#: model:ir.model.fields,field_description:account_move_tier_validation.field_tier_definition__id -msgid "ID" -msgstr "ID" - -#. module: account_move_tier_validation -#: model:ir.model.fields,help:account_move_tier_validation.field_account_move__has_comment -msgid "If set, Allow the reviewer to leave a comment on the review." -msgstr "" -"Indien ingeschakeld, kan de beoordelaar een opmerking achterlaten bij de " -"beoordeling." - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Invoice" -msgstr "Factuur" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices Pending to Validate" -msgstr "Facturen in afwachting van validatie" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices validated and ready to be confirmed" -msgstr "Facturen gevalideerd en klaar om te worden bevestigd" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices where no validation has been requested" -msgstr "Facturen waarvoor geen validatie is aangevraagd" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices where validation has not started" -msgstr "Facturen waarvoor de validatie nog niet is gestart" - -#. module: account_move_tier_validation -#: model:ir.model,name:account_move_tier_validation.model_account_move -msgid "Journal Entry" -msgstr "Journaalpost" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "My Accounts to review" -msgstr "Mijn te beoordelen posten" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__need_validation -msgid "Need Validation" -msgstr "Validatie nodig" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Needs my Review" -msgstr "Mijn beoordeling vereist" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__next_review -msgid "Next Review" -msgstr "Volgende beoordeling" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "No Validation Requested" -msgstr "Geen validatie aangevraagd" - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Refund" -msgstr "Creditnota" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__rejected_message -msgid "Rejected Message" -msgstr "Bericht bij afwijzing" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__require_authentication -msgid "Require Authentication" -msgstr "Authenticatie vereist" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__reviewer_ids -msgid "Reviewers" -msgstr "Beoordelaars" - -#. module: account_move_tier_validation -#: model:ir.model,name:account_move_tier_validation.model_tier_definition -msgid "Tier Definition" -msgstr "Niveaudefinitie" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__to_validate_message -msgid "To Validate Message" -msgstr "Bericht voor validatie" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Validated" -msgstr "Gevalideerd" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__validated_message -msgid "Validated Message" -msgstr "Bericht na validatie" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Validation In Progress" -msgstr "Validatie in behandeling" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Validation Not Started" -msgstr "Validatie niet gestart" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__validation_status -msgid "Validation Status" -msgstr "Validatiestatus" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__review_ids -msgid "Validations" -msgstr "Validaties" - -#~ msgid "Rejected" -#~ msgstr "Afgewezen" diff --git a/account_move_tier_validation/i18n/sv.po b/account_move_tier_validation/i18n/sv.po deleted file mode 100644 index 15d95de18..000000000 --- a/account_move_tier_validation/i18n/sv.po +++ /dev/null @@ -1,214 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_move_tier_validation -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-02-27 15:35+0000\n" -"Last-Translator: jakobkrabbe \n" -"Language-Team: none\n" -"Language: sv\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.17\n" - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Bill" -msgstr "Räkning" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__can_forward -msgid "Can Forward" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__can_review -msgid "Can Review" -msgstr "Kan granska" - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Credit Note" -msgstr "Kreditnota" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__display_name -#: model:ir.model.fields,field_description:account_move_tier_validation.field_tier_definition__display_name -msgid "Display Name" -msgstr "Visningsnamn" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__has_comment -msgid "Has Comment" -msgstr "Har kommentar" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__hide_reviews -msgid "Hide Reviews" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__id -#: model:ir.model.fields,field_description:account_move_tier_validation.field_tier_definition__id -msgid "ID" -msgstr "ID" - -#. module: account_move_tier_validation -#: model:ir.model.fields,help:account_move_tier_validation.field_account_move__has_comment -msgid "If set, Allow the reviewer to leave a comment on the review." -msgstr "" - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Invoice" -msgstr "Faktura" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices Pending to Validate" -msgstr "Fakturor i väntan på attestering" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices validated and ready to be confirmed" -msgstr "Fakturor som har attesterats och är redo att bekräftas" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices where no validation has been requested" -msgstr "Fakturor där ingen validering har begärts" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices where validation has not started" -msgstr "Fakturor vars attestering inte har påbörjats" - -#. module: account_move_tier_validation -#: model:ir.model,name:account_move_tier_validation.model_account_move -msgid "Journal Entry" -msgstr "Verifikat" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "My Accounts to review" -msgstr "Mina konton att granska" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__need_validation -msgid "Need Validation" -msgstr "Behöver attestering" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Needs my Review" -msgstr "Behöver min granskning" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__next_review -msgid "Next Review" -msgstr "Nästa granskning" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "No Validation Requested" -msgstr "Ingen validering begärd" - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Refund" -msgstr "Återbetalning" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__rejected_message -msgid "Rejected Message" -msgstr "Avvisat meddelande" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__require_authentication -msgid "Require Authentication" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__reviewer_ids -msgid "Reviewers" -msgstr "Granskare" - -#. module: account_move_tier_validation -#: model:ir.model,name:account_move_tier_validation.model_tier_definition -msgid "Tier Definition" -msgstr "Attestdefinition" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__to_validate_message -msgid "To Validate Message" -msgstr "För att validera meddelandet" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Validated" -msgstr "Attesterad" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__validated_message -msgid "Validated Message" -msgstr "Validerat meddelande" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Validation In Progress" -msgstr "Attestering pågår" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Validation Not Started" -msgstr "Attestering ej påbörjad" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__validation_status -msgid "Validation Status" -msgstr "Status för validering" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__review_ids -msgid "Validations" -msgstr "Attesteringar" - -#~ msgid "Rejected" -#~ msgstr "Nekad" - -#~ msgid "Reject" -#~ msgstr "Neka" - -#~ msgid "Request Validation" -#~ msgstr "Begär attestering" - -#~ msgid "Restart Validation" -#~ msgstr "Starta om attestering" - -#~ msgid "Validate" -#~ msgstr "Attestera" - -#~ msgid "" -#~ "This Invoice needs to be\n" -#~ " validated." -#~ msgstr "" -#~ "Den här fakturan behöver\n" -#~ " attesteras." - -#~ msgid " Operation has been rejected." -#~ msgstr " Operationen har nekats." - -#~ msgid " Operation has been validated!" -#~ msgstr " Operationen har attesterats!" - -#~ msgid "Last Modified on" -#~ msgstr "Senast ändrad den" diff --git a/account_move_tier_validation/i18n/zh_CN.po b/account_move_tier_validation/i18n/zh_CN.po deleted file mode 100644 index e65383e59..000000000 --- a/account_move_tier_validation/i18n/zh_CN.po +++ /dev/null @@ -1,209 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_move_tier_validation -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 13.0\n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2020-03-28 16:13+0000\n" -"Last-Translator: Dong \n" -"Language-Team: none\n" -"Language: zh_CN\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 3.10\n" - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Bill" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__can_forward -msgid "Can Forward" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__can_review -msgid "Can Review" -msgstr "" - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Credit Note" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__display_name -#: model:ir.model.fields,field_description:account_move_tier_validation.field_tier_definition__display_name -msgid "Display Name" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__has_comment -msgid "Has Comment" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__hide_reviews -msgid "Hide Reviews" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__id -#: model:ir.model.fields,field_description:account_move_tier_validation.field_tier_definition__id -msgid "ID" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,help:account_move_tier_validation.field_account_move__has_comment -msgid "If set, Allow the reviewer to leave a comment on the review." -msgstr "" - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Invoice" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices Pending to Validate" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices validated and ready to be confirmed" -msgstr "单据已批准并等待确认" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices where no validation has been requested" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Invoices where validation has not started" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model,name:account_move_tier_validation.model_account_move -msgid "Journal Entry" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "My Accounts to review" -msgstr "等待我审核的账户" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__need_validation -msgid "Need Validation" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Needs my Review" -msgstr "需要我审核" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__next_review -msgid "Next Review" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "No Validation Requested" -msgstr "" - -#. module: account_move_tier_validation -#. odoo-python -#: code:addons/account_move_tier_validation/models/account_move.py:0 -msgid "Refund" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__rejected_message -msgid "Rejected Message" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__require_authentication -msgid "Require Authentication" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__reviewer_ids -msgid "Reviewers" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model,name:account_move_tier_validation.model_tier_definition -msgid "Tier Definition" -msgstr "层级定义" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__to_validate_message -msgid "To Validate Message" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Validated" -msgstr "已批准" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__validated_message -msgid "Validated Message" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Validation In Progress" -msgstr "" - -#. module: account_move_tier_validation -#: model_terms:ir.ui.view,arch_db:account_move_tier_validation.view_account_invoice_filter -msgid "Validation Not Started" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__validation_status -msgid "Validation Status" -msgstr "" - -#. module: account_move_tier_validation -#: model:ir.model.fields,field_description:account_move_tier_validation.field_account_move__review_ids -msgid "Validations" -msgstr "" - -#~ msgid "Reject" -#~ msgstr "驳回" - -#~ msgid "Request Validation" -#~ msgstr "请求审批" - -#~ msgid "Restart Validation" -#~ msgstr "撤回审批" - -#~ msgid "Validate" -#~ msgstr "批准" - -#~ msgid "" -#~ "This Invoice needs to be\n" -#~ " validated." -#~ msgstr "这个单据需要审批。" - -#~ msgid " Operation has been rejected." -#~ msgstr "操作已被驳回。" - -#~ msgid " Operation has been validated!" -#~ msgstr " 操作已 批准!" - -#~ msgid "Journal Entries" -#~ msgstr "会计分录" diff --git a/account_move_tier_validation/models/__init__.py b/account_move_tier_validation/models/__init__.py deleted file mode 100644 index 60b56c112..000000000 --- a/account_move_tier_validation/models/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -from . import account_move -from . import tier_definition diff --git a/account_move_tier_validation/models/account_move.py b/account_move_tier_validation/models/account_move.py deleted file mode 100644 index 146c4522a..000000000 --- a/account_move_tier_validation/models/account_move.py +++ /dev/null @@ -1,59 +0,0 @@ -# Copyright <2020> PESOL -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) - -from odoo import api, models - - -class AccountMove(models.Model): - _name = "account.move" - _inherit = ["account.move", "tier.validation"] - _state_from = ["draft"] - _state_to = ["posted"] - - _tier_validation_manual_config = False - - @api.depends("need_validation") - def _compute_hide_post_button(self): - result = super()._compute_hide_post_button() - for this in self: - this.hide_post_button |= this.need_validation - return result - - def _get_under_validation_exceptions(self): - return super()._get_under_validation_exceptions() + ["needed_terms_dirty"] - - def _get_validation_exceptions(self, extra_domain=None, add_base_exceptions=True): - res = super()._get_validation_exceptions(extra_domain, add_base_exceptions) - # we need to exclude amount_total, - # otherwise editing manually the values on lines dirties the field at onchange - # since it's not in readonly because readonly="not(review_ids)", it's then - # sent at save, and will override the values set by the user - # The other exclusions are needed to be able to generate the pdf - # and send the invoice by email - am_exceptions = [ - "amount_total", - "needed_terms_dirty", - "is_manually_modified", - "is_move_sent", - "sending_data", - "matched_payment_ids", - "payment_state", - ] - return res + am_exceptions - - def _get_to_validate_message_name(self): - name = super()._get_to_validate_message_name() - if self.move_type == "in_invoice": - name = self.env._("Bill") - elif self.move_type == "in_refund": - name = self.env._("Refund") - elif self.move_type == "out_invoice": - name = self.env._("Invoice") - elif self.move_type == "out_refund": - name = self.env._("Credit Note") - return name - - def action_post(self): - return super( - AccountMove, self.with_context(skip_validation_check=True) - ).action_post() diff --git a/account_move_tier_validation/models/tier_definition.py b/account_move_tier_validation/models/tier_definition.py deleted file mode 100644 index ef92a0061..000000000 --- a/account_move_tier_validation/models/tier_definition.py +++ /dev/null @@ -1,14 +0,0 @@ -# Copyright <2020> PESOL -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) - -from odoo import api, models - - -class TierDefinition(models.Model): - _inherit = "tier.definition" - - @api.model - def _get_tier_validation_model_names(self): - res = super()._get_tier_validation_model_names() - res.append("account.move") - return res diff --git a/account_move_tier_validation/readme/CONFIGURE.md b/account_move_tier_validation/readme/CONFIGURE.md deleted file mode 100644 index 94a3ee028..000000000 --- a/account_move_tier_validation/readme/CONFIGURE.md +++ /dev/null @@ -1,5 +0,0 @@ -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 Account Move model. diff --git a/account_move_tier_validation/readme/CONTRIBUTORS.md b/account_move_tier_validation/readme/CONTRIBUTORS.md deleted file mode 100644 index 96085eaed..000000000 --- a/account_move_tier_validation/readme/CONTRIBUTORS.md +++ /dev/null @@ -1,4 +0,0 @@ -- Odoo Perú \<\> -- Tharathip Chaweewongphan \<\> -- [360ERP](https://www.360erp.com): - - Kevin Khao <> diff --git a/account_move_tier_validation/readme/DESCRIPTION.md b/account_move_tier_validation/readme/DESCRIPTION.md deleted file mode 100644 index e89837794..000000000 --- a/account_move_tier_validation/readme/DESCRIPTION.md +++ /dev/null @@ -1,2 +0,0 @@ -This module extends the functionality of Account Move to support a tier -validation process. diff --git a/account_move_tier_validation/readme/INSTALL.md b/account_move_tier_validation/readme/INSTALL.md deleted file mode 100644 index 2d41ac1af..000000000 --- a/account_move_tier_validation/readme/INSTALL.md +++ /dev/null @@ -1,2 +0,0 @@ -This module depends on base_tier_validation. You can find it at -\[OCA/server-ux\]() diff --git a/account_move_tier_validation/readme/USAGE.md b/account_move_tier_validation/readme/USAGE.md deleted file mode 100644 index a2ec65fdc..000000000 --- a/account_move_tier_validation/readme/USAGE.md +++ /dev/null @@ -1,15 +0,0 @@ -To use this module, you need to: - -1. Create an Account Invoice triggering at least one "Tier Definition". -2. Click on Request Validation button. -3. Under the tab Reviews have a look to pending reviews and their - statuses. -4. Once all reviews are validated click on Post. - -Additional features: - -- You can filter the Account Invoices requesting your review through the - filter Needs my Review. -- User with rights to confirm the Account Invoice (validate all tiers - that would be generated) can directly do the operation, this is, there - is no need for her/him to request a validation. diff --git a/account_move_tier_validation/tests/__init__.py b/account_move_tier_validation/tests/__init__.py deleted file mode 100644 index f39596410..000000000 --- a/account_move_tier_validation/tests/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from . import test_tier_validation diff --git a/account_move_tier_validation/tests/test_tier_validation.py b/account_move_tier_validation/tests/test_tier_validation.py deleted file mode 100644 index c97fb6137..000000000 --- a/account_move_tier_validation/tests/test_tier_validation.py +++ /dev/null @@ -1,142 +0,0 @@ -# Copyright 2018 ForgeFlow S.L. -# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html). - -from odoo import Command, fields -from odoo.exceptions import ValidationError -from odoo.tests import Form -from odoo.tests.common import new_test_user, tagged - -from odoo.addons.base.tests.common import BaseCommon - - -@tagged("post_install", "-at_install") -class TestAccountTierValidation(BaseCommon): - @classmethod - def setUpClass(cls): - super().setUpClass() - cls.group_system = cls.env.ref("base.group_system") - cls.group_account_manager = cls.env.ref("account.group_account_manager") - cls.test_user_1 = new_test_user( - cls.env, - name="John", - login="test1", - groups="base.group_system,account.group_account_manager", - ) - cls.test_user_2 = new_test_user( - cls.env, - name="Mike", - login="test2", - groups="base.group_system,account.group_account_manager", - ) - cls.account_move_model = cls.env["ir.model"]._get("account.move") - - # Ensure the company has a document layout configured. - if not cls.company.external_report_layout_id: - # Try to find a common default layout by XML ID - default_layout = cls.env.ref( - "web.external_layout_standard", raise_if_not_found=False - ) - if not default_layout: - # Fallback: try other common layouts if standard - # is not found by that XML ID directly - common_layouts_xml_ids = [ - "web.external_layout_boxed", - "web.external_layout_bold", - ] - for layout_xml_id in common_layouts_xml_ids: - default_layout = cls.env.ref( - layout_xml_id, raise_if_not_found=False - ) - if default_layout: - break - if not default_layout: - # As a last resort, find the first available report.layout - default_layout = cls.env["report.layout"].search([], limit=1) - - if default_layout: - cls.company.external_report_layout_id = default_layout.id - - def test_01_tier_definition_models(self): - res = self.env["tier.definition"]._get_tier_validation_model_names() - self.assertIn("account.move", res) - - def test_02_form(self): - for move_type in ("in_invoice", "out_invoice", "in_refund", "out_refund"): - self.env["tier.definition"].create( - { - "model_id": self.account_move_model.id, - "definition_domain": f"[('move_type', '=', '{move_type}')]", - } - ) - with Form( - self.env["account.move"].with_context(default_move_type=move_type) - ) as form: - form.save() - self.assertTrue(form.hide_post_button) - - def test_03_move_post(self): - self.env["tier.definition"].create( - { - "model_id": self.account_move_model.id, - "definition_domain": "[('move_type', '=', 'out_invoice')]", - "reviewer_id": self.test_user_1.id, - } - ) - partner = self.env["res.partner"].create( - {"name": "Test Partner", "email": "test@example.com"} - ) - product = self.env["product.product"].create({"name": "Test product"}) - invoice = self.env["account.move"].create( - { - "move_type": "out_invoice", - "partner_id": partner.id, - "invoice_date_due": fields.Date.to_date("2024-01-01"), - "invoice_line_ids": [ - Command.create( - {"product_id": product.id, "quantity": 1, "price_unit": 30} - ) - ], - } - ) - invoice.with_user(self.test_user_2.id).request_validation() - invoice = invoice.with_user(self.test_user_1.id) - invoice.invalidate_model() - invoice.validate_tier() - with self.assertRaisesRegex( - ValidationError, "You are not allowed to write those fields" - ): - invoice._post() - # Calls _post method by passing context skip_validation_check set to True - invoice.action_post() - self.assertEqual(invoice.state, "posted") - - # --- Simulate Sending Invoice by Email --- - # The 'action_invoice_sent' method on 'account.move' usually returns - # an action to open the 'account.move.send.wizard' wizard. - action = invoice.action_invoice_sent() - self.assertTrue( - action, "Action 'action_invoice_sent' should return an action dictionary." - ) - self.assertEqual( - action.get("res_model"), - "account.move.send.wizard", - "Action should open 'account.move.send.wizard' wizard.", - ) - - # Get the context from the action to create the wizard instance - wizard_context = action.get("context", {}) - mail_composer = ( - self.env["account.move.send.wizard"] - .with_context(**wizard_context) - .create({}) - ) - - # we should test action_send_and_print because that fails if - # not all necesary fields are excluded - if hasattr(mail_composer, "action_send_and_print"): - mail_composer.action_send_and_print() - else: - self.fail( - "Could not find a 'action_send_and_print' " - "action on the account.move.send.wizard." - ) diff --git a/account_move_tier_validation/views/account_move_view.xml b/account_move_tier_validation/views/account_move_view.xml deleted file mode 100644 index 419b14fed..000000000 --- a/account_move_tier_validation/views/account_move_view.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - account.move.select - account_move_tier_validation - account.move - - - - - - - - - - - - - diff --git a/base_tier_validation/__manifest__.py b/base_tier_validation/__manifest__.py index 2ca3c608d..69fcdb4cd 100644 --- a/base_tier_validation/__manifest__.py +++ b/base_tier_validation/__manifest__.py @@ -11,7 +11,7 @@ "author": "ForgeFlow, Odoo Community Association (OCA)", "license": "AGPL-3", "application": False, - "installable": True, + "installable": False, "depends": ["mail"], "data": [ # Security diff --git a/base_tier_validation_confirm_auth/README.rst b/base_tier_validation_confirm_auth/README.rst deleted file mode 100644 index 39bf9aeab..000000000 --- a/base_tier_validation_confirm_auth/README.rst +++ /dev/null @@ -1,91 +0,0 @@ -.. 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 Confirm Auth -================================= - -.. - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! This file is generated by oca-gen-addon-readme !! - !! changes will be overwritten. !! - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:6e3eeb86dc22a7fd2b7bec5e67c29334567ceacc2545474e073f835ccfa6514d - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -.. |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%2Ftier--validation-lightgray.png?logo=github - :target: https://github.com/OCA/tier-validation/tree/19.0/base_tier_validation_confirm_auth - :alt: OCA/tier-validation -.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/tier-validation-19-0/tier-validation-19-0-base_tier_validation_confirm_auth - :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/tier-validation&target_branch=19.0 - :alt: Try me on Runboat - -|badge1| |badge2| |badge3| |badge4| |badge5| - -Allows to add an authentication check to tier validation, where the user -must confirm his authentication in order to approve or reject the tier -review. - -**Table of contents** - -.. contents:: - :local: - -Configuration -============= - -To configure this module, you need to: - -1. Go to *Settings > Technical > Tier Validations > Tier Definition > - Select one tier definition*. -2. Mark "Require Authentication" field. - -Bug Tracker -=========== - -Bugs are tracked on `GitHub 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 `_. - -Do not contact contributors directly about support or help with technical issues. - -Credits -======= - -Authors -------- - -* ForgeFlow - -Contributors ------------- - -- Arnau Cruz arnau.cruz@forgeflow.com - -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/tier-validation `_ project on GitHub. - -You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/base_tier_validation_confirm_auth/__init__.py b/base_tier_validation_confirm_auth/__init__.py deleted file mode 100644 index aee8895e7..000000000 --- a/base_tier_validation_confirm_auth/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -from . import models -from . import wizards diff --git a/base_tier_validation_confirm_auth/__manifest__.py b/base_tier_validation_confirm_auth/__manifest__.py deleted file mode 100644 index 43f20fe51..000000000 --- a/base_tier_validation_confirm_auth/__manifest__.py +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright 2026 ForgeFlow S.L. (https://www.forgeflow.com) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -{ - "name": "Base Tier Validation Confirm Auth", - "summary": "Authentication confirmation for base tiers.", - "version": "19.0.1.0.0", - "category": "Tools", - "website": "https://github.com/OCA/tier-validation", - "author": "ForgeFlow, Odoo Community Association (OCA)", - "license": "AGPL-3", - "depends": ["base_tier_validation"], - "data": [ - "views/tier_definition_view.xml", - ], - "application": False, - "installable": True, -} diff --git a/base_tier_validation_confirm_auth/i18n/base_tier_validation_confirm_auth.pot b/base_tier_validation_confirm_auth/i18n/base_tier_validation_confirm_auth.pot deleted file mode 100644 index 9219fe88d..000000000 --- a/base_tier_validation_confirm_auth/i18n/base_tier_validation_confirm_auth.pot +++ /dev/null @@ -1,77 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * base_tier_validation_confirm_auth -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 19.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_tier_validation_confirm_auth -#: model:ir.model,name:base_tier_validation_confirm_auth.model_comment_wizard -msgid "Comment Wizard" -msgstr "" - -#. module: base_tier_validation_confirm_auth -#: model:ir.model.fields,field_description:base_tier_validation_confirm_auth.field_comment_wizard__display_name -#: model:ir.model.fields,field_description:base_tier_validation_confirm_auth.field_tier_definition__display_name -#: model:ir.model.fields,field_description:base_tier_validation_confirm_auth.field_tier_review__display_name -#: model:ir.model.fields,field_description:base_tier_validation_confirm_auth.field_tier_validation__display_name -msgid "Display Name" -msgstr "" - -#. module: base_tier_validation_confirm_auth -#: model:ir.model.fields,field_description:base_tier_validation_confirm_auth.field_comment_wizard__id -#: model:ir.model.fields,field_description:base_tier_validation_confirm_auth.field_tier_definition__id -#: model:ir.model.fields,field_description:base_tier_validation_confirm_auth.field_tier_review__id -#: model:ir.model.fields,field_description:base_tier_validation_confirm_auth.field_tier_validation__id -msgid "ID" -msgstr "" - -#. module: base_tier_validation_confirm_auth -#: model:ir.model.fields,help:base_tier_validation_confirm_auth.field_tier_definition__require_authentication -#: model:ir.model.fields,help:base_tier_validation_confirm_auth.field_tier_review__require_authentication -msgid "" -"If enabled, the user will be asked to authenticate himself in order to " -"validate or reject the tier." -msgstr "" - -#. module: base_tier_validation_confirm_auth -#: model:ir.model.fields,field_description:base_tier_validation_confirm_auth.field_tier_definition__require_authentication -#: model:ir.model.fields,field_description:base_tier_validation_confirm_auth.field_tier_review__require_authentication -#: model:ir.model.fields,field_description:base_tier_validation_confirm_auth.field_tier_validation__require_authentication -msgid "Require Authentication" -msgstr "" - -#. module: base_tier_validation_confirm_auth -#. odoo-python -#: code:addons/base_tier_validation_confirm_auth/models/res_users.py:0 -msgid "Security Control" -msgstr "" - -#. module: base_tier_validation_confirm_auth -#. odoo-python -#: code:addons/base_tier_validation_confirm_auth/models/res_users.py:0 -msgid "This method can only be accessed over HTTP" -msgstr "" - -#. module: base_tier_validation_confirm_auth -#: model:ir.model,name:base_tier_validation_confirm_auth.model_tier_definition -msgid "Tier Definition" -msgstr "" - -#. module: base_tier_validation_confirm_auth -#: model:ir.model,name:base_tier_validation_confirm_auth.model_tier_review -msgid "Tier Review" -msgstr "" - -#. module: base_tier_validation_confirm_auth -#: model:ir.model,name:base_tier_validation_confirm_auth.model_tier_validation -msgid "Tier Validation (abstract)" -msgstr "" diff --git a/base_tier_validation_confirm_auth/i18n/it.po b/base_tier_validation_confirm_auth/i18n/it.po deleted file mode 100644 index a75443690..000000000 --- a/base_tier_validation_confirm_auth/i18n/it.po +++ /dev/null @@ -1,66 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * base_tier_validation_confirm_auth -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 18.0\n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-02-10 13:24+0000\n" -"Last-Translator: mymage \n" -"Language-Team: none\n" -"Language: it\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.15.2\n" - -#. module: base_tier_validation_confirm_auth -#: model:ir.model,name:base_tier_validation_confirm_auth.model_comment_wizard -msgid "Comment Wizard" -msgstr "Procedura guidata commento" - -#. module: base_tier_validation_confirm_auth -#: model:ir.model.fields,help:base_tier_validation_confirm_auth.field_tier_definition__require_authentication -#: model:ir.model.fields,help:base_tier_validation_confirm_auth.field_tier_review__require_authentication -msgid "" -"If enabled, the user will be asked to authenticate himself in order to " -"validate or reject the tier." -msgstr "" -"Se abilitata, verrà chiesto all'utente di autenticarsi per validare o " -"rifiutare il livello." - -#. module: base_tier_validation_confirm_auth -#: model:ir.model.fields,field_description:base_tier_validation_confirm_auth.field_tier_definition__require_authentication -#: model:ir.model.fields,field_description:base_tier_validation_confirm_auth.field_tier_review__require_authentication -#: model:ir.model.fields,field_description:base_tier_validation_confirm_auth.field_tier_validation__require_authentication -msgid "Require Authentication" -msgstr "Richiede autenticazione" - -#. module: base_tier_validation_confirm_auth -#. odoo-python -#: code:addons/base_tier_validation_confirm_auth/models/res_users.py:0 -msgid "Security Control" -msgstr "Controllo di sicurezza" - -#. module: base_tier_validation_confirm_auth -#. odoo-python -#: code:addons/base_tier_validation_confirm_auth/models/res_users.py:0 -msgid "This method can only be accessed over HTTP" -msgstr "Si può accedere a questo metodo solo tramite accesso con HTTP" - -#. module: base_tier_validation_confirm_auth -#: model:ir.model,name:base_tier_validation_confirm_auth.model_tier_definition -msgid "Tier Definition" -msgstr "Definizione livello" - -#. module: base_tier_validation_confirm_auth -#: model:ir.model,name:base_tier_validation_confirm_auth.model_tier_review -msgid "Tier Review" -msgstr "Revisione livello" - -#. module: base_tier_validation_confirm_auth -#: model:ir.model,name:base_tier_validation_confirm_auth.model_tier_validation -msgid "Tier Validation (abstract)" -msgstr "Validazione livello (sintesi)" diff --git a/base_tier_validation_confirm_auth/i18n/nl.po b/base_tier_validation_confirm_auth/i18n/nl.po deleted file mode 100644 index d85f40464..000000000 --- a/base_tier_validation_confirm_auth/i18n/nl.po +++ /dev/null @@ -1,82 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * base_tier_validation_confirm_auth -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 19.0\n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-05-13 20:03+0000\n" -"Last-Translator: Bosd \n" -"Language-Team: none\n" -"Language: nl\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.15.2\n" - -#. module: base_tier_validation_confirm_auth -#: model:ir.model,name:base_tier_validation_confirm_auth.model_comment_wizard -msgid "Comment Wizard" -msgstr "Opmerkingen-wizard" - -#. module: base_tier_validation_confirm_auth -#: model:ir.model.fields,field_description:base_tier_validation_confirm_auth.field_comment_wizard__display_name -#: model:ir.model.fields,field_description:base_tier_validation_confirm_auth.field_tier_definition__display_name -#: model:ir.model.fields,field_description:base_tier_validation_confirm_auth.field_tier_review__display_name -#: model:ir.model.fields,field_description:base_tier_validation_confirm_auth.field_tier_validation__display_name -msgid "Display Name" -msgstr "Schermnaam" - -#. module: base_tier_validation_confirm_auth -#: model:ir.model.fields,field_description:base_tier_validation_confirm_auth.field_comment_wizard__id -#: model:ir.model.fields,field_description:base_tier_validation_confirm_auth.field_tier_definition__id -#: model:ir.model.fields,field_description:base_tier_validation_confirm_auth.field_tier_review__id -#: model:ir.model.fields,field_description:base_tier_validation_confirm_auth.field_tier_validation__id -msgid "ID" -msgstr "ID" - -#. module: base_tier_validation_confirm_auth -#: model:ir.model.fields,help:base_tier_validation_confirm_auth.field_tier_definition__require_authentication -#: model:ir.model.fields,help:base_tier_validation_confirm_auth.field_tier_review__require_authentication -msgid "" -"If enabled, the user will be asked to authenticate himself in order to " -"validate or reject the tier." -msgstr "" -"Indien ingeschakeld, wordt de gebruiker gevraagd zich te authenticeren om " -"het niveau te valideren of te weigeren." - -#. module: base_tier_validation_confirm_auth -#: model:ir.model.fields,field_description:base_tier_validation_confirm_auth.field_tier_definition__require_authentication -#: model:ir.model.fields,field_description:base_tier_validation_confirm_auth.field_tier_review__require_authentication -#: model:ir.model.fields,field_description:base_tier_validation_confirm_auth.field_tier_validation__require_authentication -msgid "Require Authentication" -msgstr "Authenticatie vereist" - -#. module: base_tier_validation_confirm_auth -#. odoo-python -#: code:addons/base_tier_validation_confirm_auth/models/res_users.py:0 -msgid "Security Control" -msgstr "Beveiligingscontrole" - -#. module: base_tier_validation_confirm_auth -#. odoo-python -#: code:addons/base_tier_validation_confirm_auth/models/res_users.py:0 -msgid "This method can only be accessed over HTTP" -msgstr "Deze methode is alleen toegankelijk via HTTP" - -#. module: base_tier_validation_confirm_auth -#: model:ir.model,name:base_tier_validation_confirm_auth.model_tier_definition -msgid "Tier Definition" -msgstr "Niveaudefinitie" - -#. module: base_tier_validation_confirm_auth -#: model:ir.model,name:base_tier_validation_confirm_auth.model_tier_review -msgid "Tier Review" -msgstr "Niveaubeoordeling" - -#. module: base_tier_validation_confirm_auth -#: model:ir.model,name:base_tier_validation_confirm_auth.model_tier_validation -msgid "Tier Validation (abstract)" -msgstr "Niveauvalidatie (abstract)" diff --git a/base_tier_validation_confirm_auth/models/__init__.py b/base_tier_validation_confirm_auth/models/__init__.py deleted file mode 100644 index d4e0af9ca..000000000 --- a/base_tier_validation_confirm_auth/models/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -from . import tier_definition -from . import tier_review -from . import tier_validation -from . import res_users diff --git a/base_tier_validation_confirm_auth/models/res_users.py b/base_tier_validation_confirm_auth/models/res_users.py deleted file mode 100644 index 6d846c4d9..000000000 --- a/base_tier_validation_confirm_auth/models/res_users.py +++ /dev/null @@ -1,56 +0,0 @@ -# Copyright 2026 ForgeFlow S.L. (https://www.forgeflow.com) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -import json -from functools import wraps - -from odoo.exceptions import UserError -from odoo.http import request - - -def _jsonable(o): - try: - json.dumps(o) - except TypeError: - return False - else: - return True - - -def check_authentication(fn): - @wraps(fn) - def wrapped(self, *args, **kwargs): - if not request: - raise UserError(self.env._("This method can only be accessed over HTTP")) - - if self.env.context.get("identity_checked"): - return fn(self, *args, **kwargs) - - ctx = self.env.context.copy() - ctx["identity_checked"] = True - - safe_context = {k: v for k, v in ctx.items() if _jsonable(v)} - - w = ( - self.sudo() - .env["res.users.identitycheck"] - .create( - { - "request": json.dumps( - [safe_context, self._name, self.ids, fn.__name__, args, kwargs] - ) - } - ) - ) - - return { - "type": "ir.actions.act_window", - "res_model": "res.users.identitycheck", - "res_id": w.id, - "name": self.env._("Security Control"), - "target": "new", - "views": [(False, "form")], - } - - wrapped.__has_check_identity = True - return wrapped diff --git a/base_tier_validation_confirm_auth/models/tier_definition.py b/base_tier_validation_confirm_auth/models/tier_definition.py deleted file mode 100644 index 67dc5334c..000000000 --- a/base_tier_validation_confirm_auth/models/tier_definition.py +++ /dev/null @@ -1,14 +0,0 @@ -# Copyright 2026 ForgeFlow S.L. (https://www.forgeflow.com) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from odoo import fields, models - - -class TierDefinition(models.Model): - _inherit = "tier.definition" - - require_authentication = fields.Boolean( - help="If enabled, the user will be asked to authenticate " - "himself in order to validate or reject the tier.", - default=False, - ) diff --git a/base_tier_validation_confirm_auth/models/tier_review.py b/base_tier_validation_confirm_auth/models/tier_review.py deleted file mode 100644 index fe8f0d849..000000000 --- a/base_tier_validation_confirm_auth/models/tier_review.py +++ /dev/null @@ -1,12 +0,0 @@ -# Copyright 2026 ForgeFlow S.L. (https://www.forgeflow.com) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from odoo import fields, models - - -class TierReview(models.Model): - _inherit = "tier.review" - - require_authentication = fields.Boolean( - related="definition_id.require_authentication", readonly=True - ) diff --git a/base_tier_validation_confirm_auth/models/tier_validation.py b/base_tier_validation_confirm_auth/models/tier_validation.py deleted file mode 100644 index 9caea440d..000000000 --- a/base_tier_validation_confirm_auth/models/tier_validation.py +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright 2026 ForgeFlow S.L. (https://www.forgeflow.com) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from odoo import fields, models - -from .res_users import check_authentication - - -class TierValidation(models.AbstractModel): - _inherit = "tier.validation" - - require_authentication = fields.Boolean(compute="_compute_require_authentication") - - def _compute_require_authentication(self): - for rec in self: - require_authentication = rec.review_ids.filtered( - lambda r: r.status in ("waiting", "pending") - and (self.env.user in r.reviewer_ids) - ).mapped("require_authentication") - rec.require_authentication = True in require_authentication - - def validate_tier(self): - self.ensure_one() - if not self.has_comment and self.require_authentication: - return self._validate_tier_with_identity_check() - return super().validate_tier() - - def reject_tier(self): - self.ensure_one() - if not self.has_comment and self.require_authentication: - return self._reject_tier_with_identity_check() - return super().reject_tier() - - @check_authentication - def _validate_tier_with_identity_check(self): - return super().validate_tier() - - @check_authentication - def _reject_tier_with_identity_check(self): - return super().reject_tier() diff --git a/base_tier_validation_confirm_auth/readme/CONFIGURE.md b/base_tier_validation_confirm_auth/readme/CONFIGURE.md deleted file mode 100644 index 887a1cfba..000000000 --- a/base_tier_validation_confirm_auth/readme/CONFIGURE.md +++ /dev/null @@ -1,5 +0,0 @@ -To configure this module, you need to: - -1. Go to *Settings \> Technical \> Tier Validations \> Tier - Definition \> Select one tier definition*. -2. Mark "Require Authentication" field. diff --git a/base_tier_validation_confirm_auth/readme/CONTRIBUTORS.md b/base_tier_validation_confirm_auth/readme/CONTRIBUTORS.md deleted file mode 100644 index 629a347ae..000000000 --- a/base_tier_validation_confirm_auth/readme/CONTRIBUTORS.md +++ /dev/null @@ -1 +0,0 @@ -- Arnau Cruz diff --git a/base_tier_validation_confirm_auth/readme/DESCRIPTION.md b/base_tier_validation_confirm_auth/readme/DESCRIPTION.md deleted file mode 100644 index 18c2248d8..000000000 --- a/base_tier_validation_confirm_auth/readme/DESCRIPTION.md +++ /dev/null @@ -1,2 +0,0 @@ -Allows to add an authentication check to tier validation, -where the user must confirm his authentication in order to approve or reject the tier review. diff --git a/base_tier_validation_confirm_auth/static/description/icon.png b/base_tier_validation_confirm_auth/static/description/icon.png deleted file mode 100644 index 1dcc49c24..000000000 Binary files a/base_tier_validation_confirm_auth/static/description/icon.png and /dev/null differ diff --git a/base_tier_validation_confirm_auth/static/description/index.html b/base_tier_validation_confirm_auth/static/description/index.html deleted file mode 100644 index f6be4e65b..000000000 --- a/base_tier_validation_confirm_auth/static/description/index.html +++ /dev/null @@ -1,441 +0,0 @@ - - - - - -README.rst - - - -
- - - -Odoo Community Association - -
-

Base Tier Validation Confirm Auth

- -

Beta License: AGPL-3 OCA/tier-validation Translate me on Weblate Try me on Runboat

-

Allows to add an authentication check to tier validation, where the user -must confirm his authentication in order to approve or reject the tier -review.

-

Table of contents

- -
-

Configuration

-

To configure this module, you need to:

-
    -
  1. Go to Settings > Technical > Tier Validations > Tier Definition > -Select one tier definition.
  2. -
  3. Mark “Require Authentication” field.
  4. -
-
-
-

Bug Tracker

-

Bugs are tracked on GitHub 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.

-

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

-
-
-

Credits

-
-

Authors

-
    -
  • ForgeFlow
  • -
-
- -
-

Maintainers

-

This module is maintained by the OCA.

- -Odoo Community Association - -

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/tier-validation project on GitHub.

-

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

-
-
-
-
- - diff --git a/base_tier_validation_confirm_auth/tests/__init__.py b/base_tier_validation_confirm_auth/tests/__init__.py deleted file mode 100644 index 2cab50552..000000000 --- a/base_tier_validation_confirm_auth/tests/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from . import test_tier_validation_authentication_confirm diff --git a/base_tier_validation_confirm_auth/tests/test_tier_validation_authentication_confirm.py b/base_tier_validation_confirm_auth/tests/test_tier_validation_authentication_confirm.py deleted file mode 100644 index 655c456dd..000000000 --- a/base_tier_validation_confirm_auth/tests/test_tier_validation_authentication_confirm.py +++ /dev/null @@ -1,242 +0,0 @@ -# Copyright 2026 ForgeFlow S.L. -# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html). - -from unittest.mock import MagicMock, patch - -from odoo.tests import Form, tagged - -from odoo.addons.base_tier_validation.tests.common import CommonTierValidation - - -@tagged("post_install", "-at_install") -class TierTierValidationAuthenticationConfirm(CommonTierValidation): - @classmethod - def setUpClass(cls): - super().setUpClass() - - def test_01_authentication_confirmation_and_comment(self): - # Set user password for validation - self.test_user_1.password = "test_user_1" - - # Create new test record - test_record = self.test_model.create({"test_field": 2.5}) - - # Create tier definitions - self.tier_def_obj.create( - { - "model_id": self.tester_model.id, - "review_type": "individual", - "reviewer_id": self.test_user_1.id, - "definition_domain": "[('test_field', '>', 1.0)]", - "has_comment": True, - "require_authentication": True, - } - ) - # Request validation - review = test_record.with_user(self.test_user_2.id).request_validation() - self.assertTrue(review) - self.assertEqual(review.status, "pending") - - record = test_record.with_user(self.test_user_1.id) - res = record.validate_tier() - ctx = res.get("context") - wizard = Form(self.env["comment.wizard"].with_context(**ctx)) - wizard.comment = "Test Comment" - wiz = wizard.save() - - # Mock requests to avoid errors outside HTTP request - with patch( - "odoo.addons.base_tier_validation_confirm_auth.models.res_users.request", - MagicMock(), - ): - res = wiz.add_comment() - - self.assertEqual(res["res_model"], "res.users.identitycheck") - identity_wiz_id = res["res_id"] - identity_wiz = ( - self.env["res.users.identitycheck"] - .sudo() - .browse(identity_wiz_id) - .with_user(self.test_user_1) - ) - # Mock requests to avoid errors outside HTTP request - with ( - patch("odoo.addons.base.models.res_users.request", MagicMock()), - patch( - "odoo.addons.base_tier_validation_confirm_auth.models.res_users.request", - MagicMock(), - ), - ): - identity_wiz.sudo().with_context(password="test_user_1").run_check() - - self.assertTrue(review.status == "approved") - self.assertTrue(review.done_by == self.test_user_1) - self.assertTrue(review.comment == "Test Comment") - - def test_02_authentication_confirmation_without_comment(self): - # Set user password for validation - self.test_user_1.password = "test_user_1" - - # Create new test record - test_record = self.test_model.create({"test_field": 2.5}) - - # Create tier definition with no comment + require authentication - self.tier_def_obj.create( - { - "model_id": self.tester_model.id, - "review_type": "individual", - "reviewer_id": self.test_user_1.id, - "definition_domain": "[('test_field', '>', 1.0)]", - "has_comment": False, - "require_authentication": True, - } - ) - - # Request validation - review = test_record.with_user(self.test_user_2).request_validation() - self.assertTrue(review) - self.assertEqual(review.status, "pending") - record = test_record.with_user(self.test_user_1) - - # Mock requests to avoid errors outside HTTP request - with patch( - "odoo.addons.base_tier_validation_confirm_auth.models.res_users.request", - MagicMock(), - ): - res = record.validate_tier() - - # Identity confirmation wizard - self.assertEqual(res["res_model"], "res.users.identitycheck") - identity_wiz_id = res["res_id"] - identity_wiz = ( - self.env["res.users.identitycheck"] - .sudo() - .browse(identity_wiz_id) - .with_user(self.test_user_1) - ) - # Mock requests to avoid errors outside HTTP request - with ( - patch("odoo.addons.base.models.res_users.request", MagicMock()), - patch( - "odoo.addons.base_tier_validation_confirm_auth.models.res_users.request", - MagicMock(), - ), - ): - identity_wiz.sudo().with_context(password="test_user_1").run_check() - - self.assertTrue(review.status == "approved") - self.assertTrue(review.done_by == self.test_user_1) - - def test_03_authentication_confirmation_reject_with_comment(self): - # Set user password for validation - self.test_user_1.password = "test_user_1" - - # Create new test record - test_record = self.test_model.create({"test_field": 2.5}) - - # Create tier definitions - self.tier_def_obj.create( - { - "model_id": self.tester_model.id, - "review_type": "individual", - "reviewer_id": self.test_user_1.id, - "definition_domain": "[('test_field', '>', 1.0)]", - "has_comment": True, - "require_authentication": True, - } - ) - # Request validation - review = test_record.with_user(self.test_user_2.id).request_validation() - self.assertTrue(review) - self.assertEqual(review.status, "pending") - - record = test_record.with_user(self.test_user_1.id) - res = record.reject_tier() - ctx = res.get("context") - wizard = Form(self.env["comment.wizard"].with_context(**ctx)) - wizard.comment = "Test Comment" - wiz = wizard.save() - - # Mock requests to avoid errors outside HTTP request - with patch( - "odoo.addons.base_tier_validation_confirm_auth.models.res_users.request", - MagicMock(), - ): - res = wiz.add_comment() - - # Identity confirmation wizard - self.assertEqual(res["res_model"], "res.users.identitycheck") - identity_wiz_id = res["res_id"] - identity_wiz = ( - self.env["res.users.identitycheck"] - .sudo() - .browse(identity_wiz_id) - .with_user(self.test_user_1) - ) - # Mock requests to avoid errors outside HTTP request - with ( - patch("odoo.addons.base.models.res_users.request", MagicMock()), - patch( - "odoo.addons.base_tier_validation_confirm_auth.models.res_users.request", - MagicMock(), - ), - ): - identity_wiz.sudo().with_context(password="test_user_1").run_check() - - self.assertTrue(review.status == "rejected") - self.assertTrue(review.done_by == self.test_user_1) - self.assertTrue(review.comment == "Test Comment") - - def test_04_authentication_confirmation_reject_without_comment(self): - # Set user password for validation - self.test_user_1.password = "test_user_1" - - # Create new test record - test_record = self.test_model.create({"test_field": 2.5}) - - # Create tier definition with no comment + require authentication - self.tier_def_obj.create( - { - "model_id": self.tester_model.id, - "review_type": "individual", - "reviewer_id": self.test_user_1.id, - "definition_domain": "[('test_field', '>', 1.0)]", - "has_comment": False, - "require_authentication": True, - } - ) - - # Request validation - review = test_record.with_user(self.test_user_2).request_validation() - self.assertTrue(review) - self.assertEqual(review.status, "pending") - record = test_record.with_user(self.test_user_1) - - # Mock requests to avoid errors outside HTTP request - with patch( - "odoo.addons.base_tier_validation_confirm_auth.models.res_users.request", - MagicMock(), - ): - res = record.reject_tier() - - # Identity confirmation wizard - self.assertEqual(res["res_model"], "res.users.identitycheck") - identity_wiz_id = res["res_id"] - identity_wiz = ( - self.env["res.users.identitycheck"] - .sudo() - .browse(identity_wiz_id) - .with_user(self.test_user_1) - ) - # Mock requests to avoid errors outside HTTP request - with ( - patch("odoo.addons.base.models.res_users.request", MagicMock()), - patch( - "odoo.addons.base_tier_validation_confirm_auth.models.res_users.request", - MagicMock(), - ), - ): - identity_wiz.sudo().with_context(password="test_user_1").run_check() - - self.assertTrue(review.status == "rejected") - self.assertTrue(review.done_by == self.test_user_1) diff --git a/base_tier_validation_confirm_auth/views/tier_definition_view.xml b/base_tier_validation_confirm_auth/views/tier_definition_view.xml deleted file mode 100644 index 24df48b42..000000000 --- a/base_tier_validation_confirm_auth/views/tier_definition_view.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - tier.definition.form - tier.definition - - - - - - - - diff --git a/base_tier_validation_confirm_auth/wizards/__init__.py b/base_tier_validation_confirm_auth/wizards/__init__.py deleted file mode 100644 index 2484d9e0a..000000000 --- a/base_tier_validation_confirm_auth/wizards/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from . import comment_wizard diff --git a/base_tier_validation_confirm_auth/wizards/comment_wizard.py b/base_tier_validation_confirm_auth/wizards/comment_wizard.py deleted file mode 100644 index d1e902334..000000000 --- a/base_tier_validation_confirm_auth/wizards/comment_wizard.py +++ /dev/null @@ -1,19 +0,0 @@ -# Copyright 2026 ForgeFlow S.L. (https://www.forgeflow.com) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from odoo import models - -from ..models.res_users import check_authentication - - -class CommentWizard(models.TransientModel): - _inherit = "comment.wizard" - - def add_comment(self): - if any(review.require_authentication for review in self.review_ids): - return self._add_comment_with_identity_check() - return super().add_comment() - - @check_authentication - def _add_comment_with_identity_check(self): - return super().add_comment() diff --git a/base_tier_validation_correction/README.rst b/base_tier_validation_correction/README.rst deleted file mode 100644 index 02a5da6e1..000000000 --- a/base_tier_validation_correction/README.rst +++ /dev/null @@ -1,166 +0,0 @@ -.. 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 Correction -=============================== - -.. - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! This file is generated by oca-gen-addon-readme !! - !! changes will be overwritten. !! - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:ab9784cd2cd136951a13278cb009536b8e512a15179d73a1c49d32bba5c96787 - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -.. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png - :target: https://odoo-community.org/page/development-status - :alt: Alpha -.. |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%2Ftier--validation-lightgray.png?logo=github - :target: https://github.com/OCA/tier-validation/tree/19.0/base_tier_validation_correction - :alt: OCA/tier-validation -.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/tier-validation-19-0/tier-validation-19-0-base_tier_validation_correction - :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/tier-validation&target_branch=19.0 - :alt: Try me on Runboat - -|badge1| |badge2| |badge3| |badge4| |badge5| - -This module provide a new operation to correct the information in -tier.review for any document under tier validation. - -For example, a document started validation, a tier review is assigned to -Mr. Smith. - -However, since Mr. Smith has urgent business oversea for a few days, all -document need to get approved by Mr. John as person in charge. - -This module allow user with Tier Review Correction role to change the -reviewer to Mr. John. - -Note: Currently, only correction type available is to reassign the -reviewer, but it is possible to add in the future. - -.. IMPORTANT:: - This is an alpha version, the data model and design can change at any time without warning. - Only for development or testing purpose, do not use in production. - `More details on development status `_ - -**Table of contents** - -.. contents:: - :local: - -Configuration -============= - -Person that can use the tier review correction, must has access right to -group *Tier Review Correction* - -Usage -===== - -To create/edit Tier Review Correction - -- Login as user with Tier Review Correction role -- Go to menu Settings > Technical > Tier Validation > Tier Review - Correction -- Create a new tier correction, by selecting, - - - Correction Type, in this case, Reassign Reviewer(s) - - Document Model, i.e., Purchase order - -- Find documents with pending reviews by, - - - Reviewer(s) - - Name Search - -- Then set default value to change, in this case, - - - New Reviewer(s) - -- Click button "Prepare", if any document matched, it should list in - Correction Detail table. -- For each correction line, user can still change the affected tier - reviews, and new reviewers. -- Click button "Make Correction" to finalize the operation. -- As an option, click on "Revert Back" to set back to original status. - - - For case Reassign Reviewer(s), system to get the original reviewers - from tier definition as set it back. - -Quick access, from a working document, to create/view Tier Review -Correction - -- As user with Tier Review Correction role -- On any document, i.e., Purchase Order, with validation already - started. -- On the yellow banner (pending state), click on "Change Reviewer" link - on its right side. - - - If this document has no Correction yet, it will create new. - - If the document already has some Corrections, it will show those - corrections. - -To run the Tier Review Correction by scheduled job - -- As user with Tier Review Correction role -- On any Tier Review Correction, open tab "Scheduled Action" -- Setup the datetime to Scheduled Correct and Scheduled Revert. By - default, scheduled action "Tier Correction Scheduler" will run every 1 - hour. - -Bug Tracker -=========== - -Bugs are tracked on `GitHub 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 `_. - -Do not contact contributors directly about support or help with technical issues. - -Credits -======= - -Authors -------- - -* Ecosoft - -Contributors ------------- - -- Kitti U. -- Chau Le - -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-kittiu| image:: https://github.com/kittiu.png?size=40px - :target: https://github.com/kittiu - :alt: kittiu - -Current `maintainer `__: - -|maintainer-kittiu| - -This module is part of the `OCA/tier-validation `_ project on GitHub. - -You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/base_tier_validation_correction/__init__.py b/base_tier_validation_correction/__init__.py deleted file mode 100644 index a7ec2ad35..000000000 --- a/base_tier_validation_correction/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -# Copyright 2020 Ecosoft Co., Ltd. (http://ecosoft.co.th) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -from . import models -from . import wizards diff --git a/base_tier_validation_correction/__manifest__.py b/base_tier_validation_correction/__manifest__.py deleted file mode 100644 index 9dbae3cf5..000000000 --- a/base_tier_validation_correction/__manifest__.py +++ /dev/null @@ -1,25 +0,0 @@ -# Copyright 2020 Ecosoft Co., Ltd. (http://ecosoft.co.th) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -{ - "name": "Base Tier Validation Correction", - "summary": "Correct tier.review data after it has been created.", - "version": "19.0.1.0.0", - "category": "Tools", - "website": "https://github.com/OCA/tier-validation", - "author": "Ecosoft,Odoo Community Association (OCA)", - "license": "AGPL-3", - "depends": ["base_tier_validation"], - "data": [ - "security/correction_groups.xml", - "security/ir.model.access.csv", - "data/mail_data.xml", - "data/cron_data.xml", - "templates/tier_validation_templates.xml", - "wizards/affected_tier_reviews.xml", - "views/tier_correction_view.xml", - ], - "development_status": "Alpha", - "maintainers": ["kittiu"], - "application": False, - "installable": True, -} diff --git a/base_tier_validation_correction/data/cron_data.xml b/base_tier_validation_correction/data/cron_data.xml deleted file mode 100644 index aea0eeeae..000000000 --- a/base_tier_validation_correction/data/cron_data.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - Tier Correction Scheduler - 1 - hours - - model._tier_correction_auto_run() - code - - diff --git a/base_tier_validation_correction/data/mail_data.xml b/base_tier_validation_correction/data/mail_data.xml deleted file mode 100644 index 9a28197e4..000000000 --- a/base_tier_validation_correction/data/mail_data.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - Tier Validation Correction - - - - - diff --git a/base_tier_validation_correction/i18n/base_tier_validation_correction.pot b/base_tier_validation_correction/i18n/base_tier_validation_correction.pot deleted file mode 100644 index 663279f44..000000000 --- a/base_tier_validation_correction/i18n/base_tier_validation_correction.pot +++ /dev/null @@ -1,580 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * base_tier_validation_correction -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 19.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_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Name" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__message_needaction -msgid "Action Needed" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__activity_ids -msgid "Activities" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__activity_exception_decoration -msgid "Activity Exception Decoration" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__activity_state -msgid "Activity State" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__activity_type_icon -msgid "Activity Type Icon" -msgstr "" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Actual Correct" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__date_actual_correct -msgid "Actual Correction Date" -msgstr "" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Actual Revert" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__date_actual_revert -msgid "Actual Revert Date" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__reference -msgid "Affected Documents" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.actions.act_window,name:base_tier_validation_correction.view_affected_tier_reviews_action -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction_item__review_ids -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Affected Tier Reviews" -msgstr "" - -#. module: base_tier_validation_correction -#: model:res.groups,name:base_tier_validation_correction.group_tier_correction -msgid "Allowed" -msgstr "" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Are you sure to reassign new reviewer(s) for affected tier reviews?" -msgstr "" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Are you sure to revert to old reviewer(s) for affected tier reviews?" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__message_attachment_count -msgid "Attachment Count" -msgstr "" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Cancel" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields.selection,name:base_tier_validation_correction.selection__tier_correction__state__cancel -msgid "Cancelled" -msgstr "" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_validation_label_forward -msgid "Change Reviewer" -msgstr "" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_search -msgid "Change Reviewers" -msgstr "" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.view_affected_tier_reviews_form -msgid "Close" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields.selection,name:base_tier_validation_correction.selection__tier_correction__state__done -msgid "Corrected" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction_item__correction_id -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_search -msgid "Correction" -msgstr "" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Correction Details" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__correction_type -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_search -msgid "Correction Type" -msgstr "" - -#. module: base_tier_validation_correction -#. odoo-python -#: code:addons/base_tier_validation_correction/models/tier_correction.py:0 -msgid "Correction is allowed on state = 'done' only" -msgstr "" - -#. module: base_tier_validation_correction -#. odoo-python -#: code:addons/base_tier_validation_correction/models/tier_correction.py:0 -msgid "Correction is allowed on state = 'prepare' only" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_affected_tier_reviews__create_uid -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__create_uid -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction_item__create_uid -msgid "Created by" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_affected_tier_reviews__create_date -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__create_date -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction_item__create_date -msgid "Created on" -msgstr "" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "" -"Default new reviewers to be assigned to the correction. This value can be overwritten in\n" -" Correction Detail." -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__name -msgid "Description" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_affected_tier_reviews__display_name -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__display_name -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction_item__display_name -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_validation__display_name -msgid "Display Name" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields.selection,name:base_tier_validation_correction.selection__tier_correction__state__draft -msgid "Draft" -msgstr "" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Find documents with pending reviews by" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,help:base_tier_validation_correction.field_tier_correction__old_reviewer_ids -msgid "Find documents with tier reviews matching some reviewers" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__message_follower_ids -msgid "Followers" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__message_partner_ids -msgid "Followers (Partners)" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,help:base_tier_validation_correction.field_tier_correction__activity_type_icon -msgid "Font awesome icon e.g. fa-tasks" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__has_message -msgid "Has Message" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_affected_tier_reviews__id -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__id -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction_item__id -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_validation__id -msgid "ID" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__activity_exception_icon -msgid "Icon" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,help:base_tier_validation_correction.field_tier_correction__activity_exception_icon -msgid "Icon to indicate an exception activity." -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,help:base_tier_validation_correction.field_tier_correction__message_needaction -msgid "If checked, new messages require your attention." -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,help:base_tier_validation_correction.field_tier_correction__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__message_is_follower -msgid "Is Follower" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__item_ids -msgid "Item" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_affected_tier_reviews__write_uid -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__write_uid -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction_item__write_uid -msgid "Last Updated by" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_affected_tier_reviews__write_date -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__write_date -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction_item__write_date -msgid "Last Updated on" -msgstr "" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Make Correcton" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__message_has_error -msgid "Message Delivery error" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__message_ids -msgid "Messages" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__model -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_search -msgid "Model" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__my_activity_date_deadline -msgid "My Activity Deadline" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__search_name -msgid "Name Search" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction_item__new_reviewer_ids -msgid "New Reviewers" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__activity_date_deadline -msgid "Next Activity Deadline" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__activity_summary -msgid "Next Activity Summary" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__activity_type_id -msgid "Next Activity Type" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__message_needaction_counter -msgid "Number of Actions" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__message_has_error_counter -msgid "Number of errors" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,help:base_tier_validation_correction.field_tier_correction__message_needaction_counter -msgid "Number of messages requiring action" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,help:base_tier_validation_correction.field_tier_correction__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__model_id -msgid "On Model" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__old_reviewer_ids -msgid "Original Reviewer(s)" -msgstr "" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Prepare" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields.selection,name:base_tier_validation_correction.selection__tier_correction__state__prepare -msgid "Preparing" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__new_reviewer_ids -#: model:ir.model.fields.selection,name:base_tier_validation_correction.selection__tier_correction__correction_type__reviewer -msgid "Reassign Reviewer(s)" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,help:base_tier_validation_correction.field_tier_correction__new_reviewer_ids -msgid "Reassign these reviewers to the tier reviews of the found document" -msgstr "" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Reassign to new value" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction_item__reference -msgid "Reference" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction_item__res_id -msgid "Res" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction_item__res_model -msgid "Res Model" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction_item__resource_ref -msgid "Resource" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__activity_user_id -msgid "Responsible User" -msgstr "" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Revert Back" -msgstr "" - -#. module: base_tier_validation_correction -#. odoo-python -#: code:addons/base_tier_validation_correction/models/tier_correction.py:0 -msgid "Revert Date should be after Correct Date" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields.selection,name:base_tier_validation_correction.selection__tier_correction__state__revert -msgid "Reverted" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_affected_tier_reviews__review_ids -msgid "Review" -msgstr "" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_search -msgid "Reviewer" -msgstr "" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Reviewer(s)" -msgstr "" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Scheduled Action" -msgstr "" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Scheduled Correct" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__date_schedule_correct -msgid "Scheduled Correction Date" -msgstr "" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Scheduled Revert" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__date_schedule_revert -msgid "Scheduled Revert Date" -msgstr "" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Scheduled date/time to auto correct and/or revert by" -msgstr "" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Set to Draft" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model,name:base_tier_validation_correction.model_affected_tier_reviews -msgid "Show Affected Tier Reviews" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__state -msgid "Status" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,help:base_tier_validation_correction.field_tier_correction__activity_state -msgid "" -"Status based on activities\n" -"Overdue: Due date is already passed\n" -"Today: Activity date is today\n" -"Planned: Future activities." -msgstr "" - -#. module: base_tier_validation_correction -#. odoo-python -#: code:addons/base_tier_validation_correction/models/tier_correction_item.py:0 -msgid "" -"The Correction '%(name)s', corrrected reviewers on '%(reviews)s' to " -"'%(reviewers)s'" -msgstr "" - -#. module: base_tier_validation_correction -#. odoo-python -#: code:addons/base_tier_validation_correction/models/tier_correction_item.py:0 -msgid "" -"The Correction '%(name)s', reverted reviewers on '%(reviews)s' back to " -"'%(reviewers)s'" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,help:base_tier_validation_correction.field_tier_correction_item__new_reviewer_ids -msgid "" -"These reviewers will overwrite the existing reviewer_ids in tier.review" -msgstr "" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "" -"This is optional search criteria to find matched document into Correction Details.\n" -" Only document with pending reviews will be listed." -msgstr "" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Tier Correction" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model,name:base_tier_validation_correction.model_tier_correction_item -msgid "Tier Correction Detail" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.actions.server,name:base_tier_validation_correction.tier_correction_scheduler_ir_actions_server -msgid "Tier Correction Scheduler" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.actions.act_window,name:base_tier_validation_correction.tier_correction_action -#: model:ir.model,name:base_tier_validation_correction.model_tier_correction -#: model:ir.ui.menu,name:base_tier_validation_correction.menu_tier_correction -#: model:res.groups.privilege,name:base_tier_validation_correction.privilege_tier_correction -msgid "Tier Review Correction" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model,name:base_tier_validation_correction.model_tier_validation -msgid "Tier Validation (abstract)" -msgstr "" - -#. module: base_tier_validation_correction -#: model:mail.message.subtype,name:base_tier_validation_correction.mt_tier_validation_correction -msgid "Tier Validation Correction" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,help:base_tier_validation_correction.field_tier_correction_item__review_ids -msgid "Tier reivews that will be affected by this correction." -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,help:base_tier_validation_correction.field_tier_correction__activity_exception_decoration -msgid "Type of the exception activity on record." -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__website_message_ids -msgid "Website Messages" -msgstr "" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,help:base_tier_validation_correction.field_tier_correction__website_message_ids -msgid "Website communication history" -msgstr "" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "e.g. Correction for..." -msgstr "" diff --git a/base_tier_validation_correction/i18n/it.po b/base_tier_validation_correction/i18n/it.po deleted file mode 100644 index 478cb7d22..000000000 --- a/base_tier_validation_correction/i18n/it.po +++ /dev/null @@ -1,625 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * base_tier_validation_correction -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 16.0\n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-01-19 13:50+0000\n" -"Last-Translator: mymage \n" -"Language-Team: none\n" -"Language: it\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.15.2\n" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Name" -msgstr "Nome" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__message_needaction -msgid "Action Needed" -msgstr "Azione richiesta" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__activity_ids -msgid "Activities" -msgstr "Attività" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__activity_exception_decoration -msgid "Activity Exception Decoration" -msgstr "Decorazione eccezione attività" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__activity_state -msgid "Activity State" -msgstr "Stato attività" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__activity_type_icon -msgid "Activity Type Icon" -msgstr "Icona tipo attività" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Actual Correct" -msgstr "Attuale corretto" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__date_actual_correct -msgid "Actual Correction Date" -msgstr "Data correzione attuale" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Actual Revert" -msgstr "Ripristino attuale" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__date_actual_revert -msgid "Actual Revert Date" -msgstr "Data ripristino attuale" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__reference -msgid "Affected Documents" -msgstr "Documenti interessati" - -#. module: base_tier_validation_correction -#: model:ir.actions.act_window,name:base_tier_validation_correction.view_affected_tier_reviews_action -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction_item__review_ids -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Affected Tier Reviews" -msgstr "Revisioni livello interessate" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Are you sure to reassign new reviewer(s) for affected tier reviews?" -msgstr "" -"Si è sicuri di riassegnare un nuovo revisore(i) per le revisioni livello " -"interessate?" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Are you sure to revert to old reviewer(s) for affected tier reviews?" -msgstr "" -"Si è sicuri di ripristinare il precedente revisore(i) per le revisioni " -"livello interessate?" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__message_attachment_count -msgid "Attachment Count" -msgstr "Conteggio allegati" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Cancel" -msgstr "Annulla" - -#. module: base_tier_validation_correction -#: model:ir.model.fields.selection,name:base_tier_validation_correction.selection__tier_correction__state__cancel -msgid "Cancelled" -msgstr "Annullata" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_validation_label_forward -msgid "Change Reviewer" -msgstr "Modifica revisore" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_search -msgid "Change Reviewers" -msgstr "Modifica revisori" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.view_affected_tier_reviews_form -msgid "Close" -msgstr "Chiudi" - -#. module: base_tier_validation_correction -#: model:ir.model.fields.selection,name:base_tier_validation_correction.selection__tier_correction__state__done -msgid "Corrected" -msgstr "Corretti" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction_item__correction_id -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_search -msgid "Correction" -msgstr "Correzione" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Correction Details" -msgstr "Dettagli correzioni" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__correction_type -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_search -msgid "Correction Type" -msgstr "Tipo correzione" - -#. module: base_tier_validation_correction -#. odoo-python -#: code:addons/base_tier_validation_correction/models/tier_correction.py:0 -#, python-format -msgid "Correction is allowed on state = 'done' only" -msgstr "La correzione è consentita solo in stato 'completato'" - -#. module: base_tier_validation_correction -#. odoo-python -#: code:addons/base_tier_validation_correction/models/tier_correction.py:0 -#, python-format -msgid "Correction is allowed on state = 'prepare' only" -msgstr "La correzione è consentita solo nello stato 'prepara'" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_affected_tier_reviews__create_uid -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__create_uid -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction_item__create_uid -msgid "Created by" -msgstr "Creato da" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_affected_tier_reviews__create_date -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__create_date -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction_item__create_date -msgid "Created on" -msgstr "Creato il" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "" -"Default new reviewers to be assigned to the correction. This value can be overwritten in\n" -" Correction Detail." -msgstr "" -"Nuovi revisori predefiniti da assegnare alla correzione. Questo valore può " -"essere sovrascritto in\n" -" Dettagli correzione." - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__name -msgid "Description" -msgstr "Descrizione" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_affected_tier_reviews__display_name -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__display_name -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction_item__display_name -msgid "Display Name" -msgstr "Nome visualizzato" - -#. module: base_tier_validation_correction -#: model:ir.model.fields.selection,name:base_tier_validation_correction.selection__tier_correction__state__draft -msgid "Draft" -msgstr "Bozza" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Find documents with pending reviews by" -msgstr "Trova documenti con revisioni in corso da" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,help:base_tier_validation_correction.field_tier_correction__old_reviewer_ids -msgid "Find documents with tier reviews matching some reviewers" -msgstr "" -"Trova documenti con revisioni livello che corrispondono a qualche revisore" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__message_follower_ids -msgid "Followers" -msgstr "Seguito da" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__message_partner_ids -msgid "Followers (Partners)" -msgstr "Seguito da (partner)" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,help:base_tier_validation_correction.field_tier_correction__activity_type_icon -msgid "Font awesome icon e.g. fa-tasks" -msgstr "Icona Font Awesome es. fa-tasks" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_search -msgid "Group By" -msgstr "Raggruppa per" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__has_message -msgid "Has Message" -msgstr "Ha un messaggio" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_affected_tier_reviews__id -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__id -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction_item__id -msgid "ID" -msgstr "ID" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__activity_exception_icon -msgid "Icon" -msgstr "Icona" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,help:base_tier_validation_correction.field_tier_correction__activity_exception_icon -msgid "Icon to indicate an exception activity." -msgstr "Icona per indicare un'attività eccezione." - -#. module: base_tier_validation_correction -#: model:ir.model.fields,help:base_tier_validation_correction.field_tier_correction__message_needaction -msgid "If checked, new messages require your attention." -msgstr "Se selezionata, nuovi messaggi richiedono attenzione." - -#. module: base_tier_validation_correction -#: model:ir.model.fields,help:base_tier_validation_correction.field_tier_correction__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "Se selezionata, alcuni messaggi hanno un errore di consegna." - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__message_is_follower -msgid "Is Follower" -msgstr "Segue" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__item_ids -msgid "Item" -msgstr "Elemento" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_affected_tier_reviews____last_update -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction____last_update -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction_item____last_update -msgid "Last Modified on" -msgstr "Ultima modifica il" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_affected_tier_reviews__write_uid -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__write_uid -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction_item__write_uid -msgid "Last Updated by" -msgstr "Ultimo aggiornamento di" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_affected_tier_reviews__write_date -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__write_date -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction_item__write_date -msgid "Last Updated on" -msgstr "Ultimo aggiornamento il" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__message_main_attachment_id -msgid "Main Attachment" -msgstr "Allegato principale" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Make Correcton" -msgstr "Crea correzione" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__message_has_error -msgid "Message Delivery error" -msgstr "Errore di consegna messaggio" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__message_ids -msgid "Messages" -msgstr "Messaggi" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__model -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_search -msgid "Model" -msgstr "Modello" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__my_activity_date_deadline -msgid "My Activity Deadline" -msgstr "Scadenza mia attività" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__search_name -msgid "Name Search" -msgstr "Ricerca nome" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction_item__new_reviewer_ids -msgid "New Reviewers" -msgstr "Nuovi revisori" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__activity_calendar_event_id -msgid "Next Activity Calendar Event" -msgstr "Evento calendario attività successiva" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__activity_date_deadline -msgid "Next Activity Deadline" -msgstr "Scadenza prossima attività" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__activity_summary -msgid "Next Activity Summary" -msgstr "Riepilogo prossima attività" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__activity_type_id -msgid "Next Activity Type" -msgstr "Tipo prossima attività" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__message_needaction_counter -msgid "Number of Actions" -msgstr "Numero di azioni" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__message_has_error_counter -msgid "Number of errors" -msgstr "Numero di errori" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,help:base_tier_validation_correction.field_tier_correction__message_needaction_counter -msgid "Number of messages requiring action" -msgstr "Numero di messaggi che richiedono un'azione" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,help:base_tier_validation_correction.field_tier_correction__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "Numero di messaggi con errore di consegna" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__model_id -msgid "On Model" -msgstr "Nel modello" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__old_reviewer_ids -msgid "Original Reviewer(s)" -msgstr "Revisore(i) originale" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Prepare" -msgstr "Prepara" - -#. module: base_tier_validation_correction -#: model:ir.model.fields.selection,name:base_tier_validation_correction.selection__tier_correction__state__prepare -msgid "Preparing" -msgstr "Preparazione" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__new_reviewer_ids -#: model:ir.model.fields.selection,name:base_tier_validation_correction.selection__tier_correction__correction_type__reviewer -msgid "Reassign Reviewer(s)" -msgstr "Riassegna revisore(i)" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,help:base_tier_validation_correction.field_tier_correction__new_reviewer_ids -msgid "Reassign these reviewers to the tier reviews of the found document" -msgstr "Riassegna questi revisori alle revisioni livello del documento trovato" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Reassign to new value" -msgstr "Riassegna a nuovo valore" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction_item__reference -msgid "Reference" -msgstr "Riferimento" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction_item__res_id -msgid "Res" -msgstr "Res" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction_item__res_model -msgid "Res Model" -msgstr "Modello res" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction_item__resource_ref -msgid "Resource" -msgstr "Risorsa" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__activity_user_id -msgid "Responsible User" -msgstr "Utente responsabile" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Revert Back" -msgstr "Ripristina" - -#. module: base_tier_validation_correction -#. odoo-python -#: code:addons/base_tier_validation_correction/models/tier_correction.py:0 -#, python-format -msgid "Revert Date should be after Correct Date" -msgstr "La data di ripristino deve essere dopo la data di corretta" - -#. module: base_tier_validation_correction -#: model:ir.model.fields.selection,name:base_tier_validation_correction.selection__tier_correction__state__revert -msgid "Reverted" -msgstr "Ripristinato" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_affected_tier_reviews__review_ids -msgid "Review" -msgstr "Revisione" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_search -msgid "Reviewer" -msgstr "Revisore" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Reviewer(s)" -msgstr "Revisore(i)" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Scheduled Action" -msgstr "Azione schedulata" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Scheduled Correct" -msgstr "Correzione schedulato" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__date_schedule_correct -msgid "Scheduled Correction Date" -msgstr "Data correzione schedulato" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Scheduled Revert" -msgstr "Ripristina schedulato" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__date_schedule_revert -msgid "Scheduled Revert Date" -msgstr "Data ripristino schedulato" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Scheduled date/time to auto correct and/or revert by" -msgstr "Data/ora schedulata da auto correggere e/o ripristinare da" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Set to Draft" -msgstr "Imposta a bozza" - -#. module: base_tier_validation_correction -#: model:ir.model,name:base_tier_validation_correction.model_affected_tier_reviews -msgid "Show Affected Tier Reviews" -msgstr "Visualizza revisioni livello coinvolte" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__state -msgid "Status" -msgstr "Stato" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,help:base_tier_validation_correction.field_tier_correction__activity_state -msgid "" -"Status based on activities\n" -"Overdue: Due date is already passed\n" -"Today: Activity date is today\n" -"Planned: Future activities." -msgstr "" -"Stato in base alle attività\n" -"Scaduto: la data richiesta è trascorsa\n" -"Oggi: la data attività è oggi\n" -"Pianificato: attività future." - -#. module: base_tier_validation_correction -#. odoo-python -#: code:addons/base_tier_validation_correction/models/tier_correction.py:0 -#, python-format -msgid "" -"The Correction '%(name)s', corrrected reviewers on '%(reviews)s' to " -"'%(reviewers)s'" -msgstr "" -"La correzione '%(name)s', ha corretto i revisori in '%(reviews)s' a " -"'%(reviewers)s'" - -#. module: base_tier_validation_correction -#. odoo-python -#: code:addons/base_tier_validation_correction/models/tier_correction.py:0 -#, python-format -msgid "" -"The Correction '%(name)s', reverted reviewers on '%(reviews)s' back to " -"'%(reviewers)s'" -msgstr "" -"La correzione '%(name)s', ha ripristinato i revisori in '%(reviews)s' a " -"'%(reviewers)s'" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,help:base_tier_validation_correction.field_tier_correction_item__new_reviewer_ids -msgid "" -"These reviewers will overwrite the existing reviewer_ids in tier.review" -msgstr "" -"Questi revisori sovrascriveranno gli attuali reviewer_ids in tier.review" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "" -"This is optional search criteria to find matched document into Correction Details.\n" -" Only document with pending reviews will be listed." -msgstr "" -"Questo è un criterio di ricerca facoltativo per trovare il documento " -"corrispondente nei dettagli della correzione. \n" -" Verranno elencati solo i documenti con " -"revisioni in sospeso." - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Tier Correction" -msgstr "Correzione livello" - -#. module: base_tier_validation_correction -#: model:ir.model,name:base_tier_validation_correction.model_tier_correction_item -msgid "Tier Correction Detail" -msgstr "Dettagli correzione livello" - -#. module: base_tier_validation_correction -#: model:ir.actions.server,name:base_tier_validation_correction.tier_correction_scheduler_ir_actions_server -#: model:ir.cron,cron_name:base_tier_validation_correction.tier_correction_scheduler -msgid "Tier Correction Scheduler" -msgstr "Schedulatore correzione livello" - -#. module: base_tier_validation_correction -#: model:ir.actions.act_window,name:base_tier_validation_correction.tier_correction_action -#: model:ir.model,name:base_tier_validation_correction.model_tier_correction -#: model:ir.ui.menu,name:base_tier_validation_correction.menu_tier_correction -#: model:res.groups,name:base_tier_validation_correction.group_tier_correction -msgid "Tier Review Correction" -msgstr "Correzione revisione livello" - -#. module: base_tier_validation_correction -#: model:ir.model,name:base_tier_validation_correction.model_tier_validation -msgid "Tier Validation (abstract)" -msgstr "Validazione livello (sintesi)" - -#. module: base_tier_validation_correction -#: model:mail.message.subtype,name:base_tier_validation_correction.mt_tier_validation_correction -msgid "Tier Validation Correction" -msgstr "Correzione validazione livello" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,help:base_tier_validation_correction.field_tier_correction_item__review_ids -msgid "Tier reivews that will be affected by this correction." -msgstr "Revisioni livello che verranno coinvolte da questa correzione." - -#. module: base_tier_validation_correction -#: model:ir.model.fields,help:base_tier_validation_correction.field_tier_correction__activity_exception_decoration -msgid "Type of the exception activity on record." -msgstr "Tipo di attività eccezione sul record." - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__website_message_ids -msgid "Website Messages" -msgstr "Messaggi sito web" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,help:base_tier_validation_correction.field_tier_correction__website_message_ids -msgid "Website communication history" -msgstr "Cronologia comunicazioni sito web" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "e.g. Correction for..." -msgstr "es. Correzione per..." diff --git a/base_tier_validation_correction/i18n/nl.po b/base_tier_validation_correction/i18n/nl.po deleted file mode 100644 index d99580297..000000000 --- a/base_tier_validation_correction/i18n/nl.po +++ /dev/null @@ -1,609 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * base_tier_validation_correction -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 19.0\n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-05-13 20:06+0000\n" -"Last-Translator: Bosd \n" -"Language-Team: none\n" -"Language: nl\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.15.2\n" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Name" -msgstr "Naam" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__message_needaction -msgid "Action Needed" -msgstr "Actie vereist" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__activity_ids -msgid "Activities" -msgstr "Activiteiten" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__activity_exception_decoration -msgid "Activity Exception Decoration" -msgstr "Activiteit uitzondering decoratie" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__activity_state -msgid "Activity State" -msgstr "Activiteitsfase" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__activity_type_icon -msgid "Activity Type Icon" -msgstr "Activiteitstype-icoon" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Actual Correct" -msgstr "Werkelijke correctie" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__date_actual_correct -msgid "Actual Correction Date" -msgstr "Werkelijke correctiedatum" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Actual Revert" -msgstr "Werkelijke terugdraaiing" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__date_actual_revert -msgid "Actual Revert Date" -msgstr "Werkelijke terugdraaidatum" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__reference -msgid "Affected Documents" -msgstr "Betrokken documenten" - -#. module: base_tier_validation_correction -#: model:ir.actions.act_window,name:base_tier_validation_correction.view_affected_tier_reviews_action -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction_item__review_ids -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Affected Tier Reviews" -msgstr "Betrokken niveaubeoordelingen" - -#. module: base_tier_validation_correction -#: model:res.groups,name:base_tier_validation_correction.group_tier_correction -msgid "Allowed" -msgstr "Toegestaan" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Are you sure to reassign new reviewer(s) for affected tier reviews?" -msgstr "" -"Weet u zeker dat u nieuwe beoordelaar(s) wilt toewijzen voor de betrokken " -"niveaubeoordelingen?" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Are you sure to revert to old reviewer(s) for affected tier reviews?" -msgstr "" -"Weet u zeker dat u de oude beoordelaar(s) wilt herstellen voor de betrokken " -"niveaubeoordelingen?" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__message_attachment_count -msgid "Attachment Count" -msgstr "Aantal bijlagen" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Cancel" -msgstr "Annuleren" - -#. module: base_tier_validation_correction -#: model:ir.model.fields.selection,name:base_tier_validation_correction.selection__tier_correction__state__cancel -msgid "Cancelled" -msgstr "Geannuleerd" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_validation_label_forward -msgid "Change Reviewer" -msgstr "Beoordelaar wijzigen" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_search -msgid "Change Reviewers" -msgstr "Beoordelaars wijzigen" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.view_affected_tier_reviews_form -msgid "Close" -msgstr "Sluiten" - -#. module: base_tier_validation_correction -#: model:ir.model.fields.selection,name:base_tier_validation_correction.selection__tier_correction__state__done -msgid "Corrected" -msgstr "Gecorrigeerd" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction_item__correction_id -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_search -msgid "Correction" -msgstr "Correctie" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Correction Details" -msgstr "Correctiedetails" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__correction_type -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_search -msgid "Correction Type" -msgstr "Correctietype" - -#. module: base_tier_validation_correction -#. odoo-python -#: code:addons/base_tier_validation_correction/models/tier_correction.py:0 -msgid "Correction is allowed on state = 'done' only" -msgstr "Correctie is alleen toegestaan bij status = 'gereed'" - -#. module: base_tier_validation_correction -#. odoo-python -#: code:addons/base_tier_validation_correction/models/tier_correction.py:0 -msgid "Correction is allowed on state = 'prepare' only" -msgstr "Correctie is alleen toegestaan bij status = 'voorbereiden'" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_affected_tier_reviews__create_uid -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__create_uid -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction_item__create_uid -msgid "Created by" -msgstr "Aangemaakt door" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_affected_tier_reviews__create_date -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__create_date -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction_item__create_date -msgid "Created on" -msgstr "Aangemaakt op" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "" -"Default new reviewers to be assigned to the correction. This value can be overwritten in\n" -" Correction Detail." -msgstr "" -"Standaard nieuwe beoordelaars die aan de correctie worden toegewezen. Deze " -"waarde kan worden overschreven in de\n" -" correctiedetails." - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__name -msgid "Description" -msgstr "Omschrijving" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_affected_tier_reviews__display_name -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__display_name -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction_item__display_name -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_validation__display_name -msgid "Display Name" -msgstr "Schermnaam" - -#. module: base_tier_validation_correction -#: model:ir.model.fields.selection,name:base_tier_validation_correction.selection__tier_correction__state__draft -msgid "Draft" -msgstr "Concept" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Find documents with pending reviews by" -msgstr "Zoek documenten met openstaande beoordelingen op" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,help:base_tier_validation_correction.field_tier_correction__old_reviewer_ids -msgid "Find documents with tier reviews matching some reviewers" -msgstr "" -"Zoek documenten met niveaubeoordelingen die overeenkomen met bepaalde " -"beoordelaars" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__message_follower_ids -msgid "Followers" -msgstr "Volgers" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__message_partner_ids -msgid "Followers (Partners)" -msgstr "Volgers (Relaties)" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,help:base_tier_validation_correction.field_tier_correction__activity_type_icon -msgid "Font awesome icon e.g. fa-tasks" -msgstr "Font Awesome icoon, bijv. fa-tasks" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__has_message -msgid "Has Message" -msgstr "Heeft bericht" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_affected_tier_reviews__id -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__id -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction_item__id -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_validation__id -msgid "ID" -msgstr "ID" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__activity_exception_icon -msgid "Icon" -msgstr "Icoon" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,help:base_tier_validation_correction.field_tier_correction__activity_exception_icon -msgid "Icon to indicate an exception activity." -msgstr "Icoon om een uitzonderingsactiviteit aan te geven." - -#. module: base_tier_validation_correction -#: model:ir.model.fields,help:base_tier_validation_correction.field_tier_correction__message_needaction -msgid "If checked, new messages require your attention." -msgstr "Indien aangevinkt vereisen nieuwe berichten uw aandacht." - -#. module: base_tier_validation_correction -#: model:ir.model.fields,help:base_tier_validation_correction.field_tier_correction__message_has_error -msgid "If checked, some messages have a delivery error." -msgstr "Indien aangevinkt hebben sommige berichten een leveringsfout." - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__message_is_follower -msgid "Is Follower" -msgstr "Is volger" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__item_ids -msgid "Item" -msgstr "Item" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_affected_tier_reviews__write_uid -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__write_uid -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction_item__write_uid -msgid "Last Updated by" -msgstr "Laatst bijgewerkt door" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_affected_tier_reviews__write_date -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__write_date -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction_item__write_date -msgid "Last Updated on" -msgstr "Laatst bijgewerkt op" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Make Correcton" -msgstr "Correctie uitvoeren" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__message_has_error -msgid "Message Delivery error" -msgstr "Bericht leveringsfout" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__message_ids -msgid "Messages" -msgstr "Berichten" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__model -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_search -msgid "Model" -msgstr "Model" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__my_activity_date_deadline -msgid "My Activity Deadline" -msgstr "Mijn activiteit deadline" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__search_name -msgid "Name Search" -msgstr "Zoeken op naam" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction_item__new_reviewer_ids -msgid "New Reviewers" -msgstr "Nieuwe beoordelaars" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__activity_date_deadline -msgid "Next Activity Deadline" -msgstr "Volgende activiteit deadline" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__activity_summary -msgid "Next Activity Summary" -msgstr "Volgende activiteit samenvatting" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__activity_type_id -msgid "Next Activity Type" -msgstr "Volgende activiteitstype" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__message_needaction_counter -msgid "Number of Actions" -msgstr "Aantal acties" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__message_has_error_counter -msgid "Number of errors" -msgstr "Aantal fouten" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,help:base_tier_validation_correction.field_tier_correction__message_needaction_counter -msgid "Number of messages requiring action" -msgstr "Aantal berichten die actie vereisen" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,help:base_tier_validation_correction.field_tier_correction__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "Aantal berichten met leveringsfout" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__model_id -msgid "On Model" -msgstr "Op model" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__old_reviewer_ids -msgid "Original Reviewer(s)" -msgstr "Oorspronkelijke beoordelaar(s)" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Prepare" -msgstr "Voorbereiden" - -#. module: base_tier_validation_correction -#: model:ir.model.fields.selection,name:base_tier_validation_correction.selection__tier_correction__state__prepare -msgid "Preparing" -msgstr "Voorbereiden" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__new_reviewer_ids -#: model:ir.model.fields.selection,name:base_tier_validation_correction.selection__tier_correction__correction_type__reviewer -msgid "Reassign Reviewer(s)" -msgstr "Beoordelaar(s) opnieuw toewijzen" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,help:base_tier_validation_correction.field_tier_correction__new_reviewer_ids -msgid "Reassign these reviewers to the tier reviews of the found document" -msgstr "" -"Wijs deze beoordelaars opnieuw toe aan de niveaubeoordelingen van het " -"gevonden document" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Reassign to new value" -msgstr "Opnieuw toewijzen aan nieuwe waarde" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction_item__reference -msgid "Reference" -msgstr "Referentie" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction_item__res_id -msgid "Res" -msgstr "Res" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction_item__res_model -msgid "Res Model" -msgstr "Res-model" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction_item__resource_ref -msgid "Resource" -msgstr "Bron" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__activity_user_id -msgid "Responsible User" -msgstr "Verantwoordelijke gebruiker" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Revert Back" -msgstr "Terugdraaien" - -#. module: base_tier_validation_correction -#. odoo-python -#: code:addons/base_tier_validation_correction/models/tier_correction.py:0 -msgid "Revert Date should be after Correct Date" -msgstr "De terugdraaidatum moet na de correctiedatum liggen" - -#. module: base_tier_validation_correction -#: model:ir.model.fields.selection,name:base_tier_validation_correction.selection__tier_correction__state__revert -msgid "Reverted" -msgstr "Teruggedraaid" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_affected_tier_reviews__review_ids -msgid "Review" -msgstr "Beoordeling" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_search -msgid "Reviewer" -msgstr "Beoordelaar" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Reviewer(s)" -msgstr "Beoordelaar(s)" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Scheduled Action" -msgstr "Geplande actie" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Scheduled Correct" -msgstr "Geplande correctie" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__date_schedule_correct -msgid "Scheduled Correction Date" -msgstr "Geplande correctiedatum" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Scheduled Revert" -msgstr "Geplande terugdraaiing" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__date_schedule_revert -msgid "Scheduled Revert Date" -msgstr "Geplande terugdraaidatum" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Scheduled date/time to auto correct and/or revert by" -msgstr "" -"Geplande datum/tijd voor automatische correctie en/of terugdraaiing door" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Set to Draft" -msgstr "Zet op concept" - -#. module: base_tier_validation_correction -#: model:ir.model,name:base_tier_validation_correction.model_affected_tier_reviews -msgid "Show Affected Tier Reviews" -msgstr "Toon betrokken niveaubeoordelingen" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__state -msgid "Status" -msgstr "Status" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,help:base_tier_validation_correction.field_tier_correction__activity_state -msgid "" -"Status based on activities\n" -"Overdue: Due date is already passed\n" -"Today: Activity date is today\n" -"Planned: Future activities." -msgstr "" -"Status gebaseerd op activiteiten\n" -"Te laat: Deadline is al verstreken\n" -"Vandaag: Activiteitdatum is vandaag\n" -"Gepland: Toekomstige activiteiten." - -#. module: base_tier_validation_correction -#. odoo-python -#: code:addons/base_tier_validation_correction/models/tier_correction_item.py:0 -msgid "" -"The Correction '%(name)s', corrrected reviewers on '%(reviews)s' to " -"'%(reviewers)s'" -msgstr "" -"De correctie '%(name)s' heeft de beoordelaars op '%(reviews)s' gewijzigd " -"naar '%(reviewers)s'" - -#. module: base_tier_validation_correction -#. odoo-python -#: code:addons/base_tier_validation_correction/models/tier_correction_item.py:0 -msgid "" -"The Correction '%(name)s', reverted reviewers on '%(reviews)s' back to " -"'%(reviewers)s'" -msgstr "" -"De correctie '%(name)s' heeft de beoordelaars op '%(reviews)s' teruggezet " -"naar '%(reviewers)s'" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,help:base_tier_validation_correction.field_tier_correction_item__new_reviewer_ids -msgid "" -"These reviewers will overwrite the existing reviewer_ids in tier.review" -msgstr "" -"Deze beoordelaars zullen de bestaande reviewer_ids in tier.review " -"overschrijven" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "" -"This is optional search criteria to find matched document into Correction Details.\n" -" Only document with pending reviews will be listed." -msgstr "" -"Dit zijn optionele zoekcriteria om overeenkomende documenten te vinden in de " -"correctiedetails.\n" -" Alleen documenten met openstaande " -"beoordelingen worden getoond." - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "Tier Correction" -msgstr "Niveaucorrectie" - -#. module: base_tier_validation_correction -#: model:ir.model,name:base_tier_validation_correction.model_tier_correction_item -msgid "Tier Correction Detail" -msgstr "Niveaucorrectie detail" - -#. module: base_tier_validation_correction -#: model:ir.actions.server,name:base_tier_validation_correction.tier_correction_scheduler_ir_actions_server -msgid "Tier Correction Scheduler" -msgstr "Niveaucorrectie planner" - -#. module: base_tier_validation_correction -#: model:ir.actions.act_window,name:base_tier_validation_correction.tier_correction_action -#: model:ir.model,name:base_tier_validation_correction.model_tier_correction -#: model:ir.ui.menu,name:base_tier_validation_correction.menu_tier_correction -#: model:res.groups.privilege,name:base_tier_validation_correction.privilege_tier_correction -msgid "Tier Review Correction" -msgstr "Niveaubeoordeling correctie" - -#. module: base_tier_validation_correction -#: model:ir.model,name:base_tier_validation_correction.model_tier_validation -msgid "Tier Validation (abstract)" -msgstr "Niveauvalidatie (abstract)" - -#. module: base_tier_validation_correction -#: model:mail.message.subtype,name:base_tier_validation_correction.mt_tier_validation_correction -msgid "Tier Validation Correction" -msgstr "Niveauvalidatie correctie" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,help:base_tier_validation_correction.field_tier_correction_item__review_ids -msgid "Tier reivews that will be affected by this correction." -msgstr "Niveaubeoordelingen die door deze correctie worden beïnvloed." - -#. module: base_tier_validation_correction -#: model:ir.model.fields,help:base_tier_validation_correction.field_tier_correction__activity_exception_decoration -msgid "Type of the exception activity on record." -msgstr "Type van de uitzonderingsactiviteit op het record." - -#. module: base_tier_validation_correction -#: model:ir.model.fields,field_description:base_tier_validation_correction.field_tier_correction__website_message_ids -msgid "Website Messages" -msgstr "Websiteberichten" - -#. module: base_tier_validation_correction -#: model:ir.model.fields,help:base_tier_validation_correction.field_tier_correction__website_message_ids -msgid "Website communication history" -msgstr "Website communicatiehistorie" - -#. module: base_tier_validation_correction -#: model_terms:ir.ui.view,arch_db:base_tier_validation_correction.tier_correction_view_form -msgid "e.g. Correction for..." -msgstr "bijv. Correctie voor..." diff --git a/base_tier_validation_correction/models/__init__.py b/base_tier_validation_correction/models/__init__.py deleted file mode 100644 index 7c04382cf..000000000 --- a/base_tier_validation_correction/models/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -# Copyright 2020 Ecosoft Co., Ltd. (http://ecosoft.co.th) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -from . import tier_correction -from . import tier_correction_item -from . import tier_validation diff --git a/base_tier_validation_correction/models/tier_correction.py b/base_tier_validation_correction/models/tier_correction.py deleted file mode 100644 index 179a25b2d..000000000 --- a/base_tier_validation_correction/models/tier_correction.py +++ /dev/null @@ -1,214 +0,0 @@ -# Copyright 2020 Ecosoft Co., Ltd. (http://ecosoft.co.th) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -import logging - -from odoo import Command, api, fields, models -from odoo.exceptions import ValidationError -from odoo.fields import Domain - -_logger = logging.getLogger(__name__) - - -class TierCorrection(models.Model): - _name = "tier.correction" - _inherit = ["mail.thread", "mail.activity.mixin"] - _description = "Tier Review Correction" - _order = "id desc" - - name = fields.Char( - string="Description", - required=True, - ) - model_id = fields.Many2one( - comodel_name="ir.model", - string="On Model", - domain=lambda self: [ - ( - "model", - "in", - self.env["tier.definition"]._get_tier_validation_model_names(), - ) - ], - ) - model = fields.Char(related="model_id.model", index=True, store=True) - correction_type = fields.Selection( - selection=[ - ("reviewer", "Reassign Reviewer(s)"), - ], - default="reviewer", - required=True, - ) - search_name = fields.Char( - string="Name Search", - ) - old_reviewer_ids = fields.Many2many( - comodel_name="res.users", - relation="tier_correction_old_reviewer_rel", - string="Original Reviewer(s)", - help="Find documents with tier reviews matching some reviewers", - ) - new_reviewer_ids = fields.Many2many( - comodel_name="res.users", - relation="tier_correction_new_reviewer_rel", - string="Reassign Reviewer(s)", - help="Reassign these reviewers to the tier reviews of the found document", - ) - item_ids = fields.One2many( - comodel_name="tier.correction.item", - inverse_name="correction_id", - ) - state = fields.Selection( - selection=[ - ("draft", "Draft"), - ("prepare", "Preparing"), - ("done", "Corrected"), - ("cancel", "Cancelled"), - ("revert", "Reverted"), - ], - string="Status", - copy=False, - index=True, - tracking=1, - default="draft", - ) - reference = fields.Char( - string="Affected Documents", - compute="_compute_reference", - store=True, - ) - date_schedule_correct = fields.Datetime( - string="Scheduled Correction Date", - copy=False, - ) - date_actual_correct = fields.Datetime( - string="Actual Correction Date", - copy=False, - ) - date_schedule_revert = fields.Datetime( - string="Scheduled Revert Date", - copy=False, - ) - date_actual_revert = fields.Datetime( - string="Actual Revert Date", - copy=False, - ) - - @api.constrains("date_schedule_correct", "date_schedule_revert") - def _check_date(self): - """Correct Date < Revert Date""" - for rec in self: - now = fields.Datetime.now() - correct = rec.date_schedule_correct or now - revert = rec.date_schedule_revert or correct or now - if not (correct <= revert): - raise ValidationError( - self.env._("Revert Date should be after Correct Date") - ) - - def search_document(self): - for rec in self: - rec.item_ids.unlink() - if rec.correction_type == "reviewer": - doc_domain = Domain("review_ids.status", "in", ["waiting", "pending"]) - review_domain = Domain("status", "in", ["waiting", "pending"]) - if rec.search_name: - doc_ids = self.env[rec.model].name_search(rec.search_name) - doc_domain &= Domain("id", "in", list(dict(doc_ids).keys())) - if rec.old_reviewer_ids: - doc_domain &= Domain( - "review_ids.reviewer_ids", "in", rec.old_reviewer_ids.ids - ) - review_domain &= Domain( - "reviewer_ids", "in", rec.old_reviewer_ids.ids - ) - items = [] - for doc in self.env[rec.model].search_fetch( - doc_domain, ["review_ids", "display_name"] - ): - review_ids = doc.review_ids.filtered_domain(review_domain).ids - items.append( - Command.create( - { - "res_model": doc._name, - "res_id": doc.id, - "resource_ref": f"{doc._name},{doc.id}", - "reference": doc.display_name, - "new_reviewer_ids": [ - Command.set(rec.new_reviewer_ids.ids) - ], - "review_ids": [Command.set(review_ids)], - }, - ) - ) - rec.write({"item_ids": items}) - - @api.depends("item_ids") - def _compute_reference(self): - for rec in self: - rec.reference = ", ".join( - rec.item_ids.filtered("reference").mapped("reference") - ) - - def do_correct(self): - for rec in self: - if rec.state != "prepare": - raise ValidationError( - self.env._("Correction is allowed on state = 'prepare' only") - ) - if rec.correction_type == "reviewer": - rec.item_ids.correct() - self.write({"date_actual_correct": fields.Datetime.now()}) - - def do_revert(self): - for rec in self: - if rec.state != "done": - raise ValidationError( - self.env._("Correction is allowed on state = 'done' only") - ) - if rec.correction_type == "reviewer": - rec.item_ids.revert() - self.write({"date_actual_revert": fields.Datetime.now()}) - - def action_draft(self): - self.mapped("item_ids").unlink() - self.write({"state": "draft"}) - - def action_prepare(self): - self.search_document() - self.write({"state": "prepare"}) - - def action_done(self): - self.do_correct() - self.write({"state": "done"}) - - def action_cancel(self): - self.write({"state": "cancel"}) - - def action_revert(self): - self.do_revert() - self.write({"state": "revert"}) - - def view_scheduled_action(self): - self.ensure_one() - result = self.env["ir.actions.act_window"]._for_xml_id("base.ir_cron_act") - cron = self.env.ref("base_tier_validation_correction.tier_correction_scheduler") - result["domain"] = list(Domain("id", "in", cron.ids)) - return result - - def _tier_correction_auto_run(self): - # To correct - to_correct = self.search( - Domain("state", "=", "prepare") - & Domain("date_schedule_correct", "!=", False) - & Domain("date_schedule_correct", "<=", fields.Datetime.now()) - ) - to_correct.action_done() - _logger.info("Tier Correction - Correction: %s", to_correct) - # To revert - to_revert = self.search( - Domain("state", "=", "done") - & Domain("date_schedule_revert", "!=", False) - & Domain("date_schedule_revert", "<=", fields.Datetime.now()) - ) - to_revert.action_revert() - _logger.info("Tier Correction - Reversion: %s", to_revert) diff --git a/base_tier_validation_correction/models/tier_correction_item.py b/base_tier_validation_correction/models/tier_correction_item.py deleted file mode 100644 index fa727805f..000000000 --- a/base_tier_validation_correction/models/tier_correction_item.py +++ /dev/null @@ -1,86 +0,0 @@ -# Copyright 2020 Ecosoft Co., Ltd. (http://ecosoft.co.th) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from odoo import Command, fields, models - - -class TierCorrectionItem(models.Model): - _name = "tier.correction.item" - _description = "Tier Correction Detail" - - correction_id = fields.Many2one( - comodel_name="tier.correction", - index=True, - ) - res_model = fields.Char(readonly=True) - res_id = fields.Integer(readonly=True) - resource_ref = fields.Reference( - string="Resource", - selection=lambda self: [ - (model.model, model.name) for model in self.env["ir.model"].search([]) - ], - readonly=True, - ) - reference = fields.Char(readonly=True) - new_reviewer_ids = fields.Many2many( - comodel_name="res.users", - relation="tier_correction_item_new_reviewer_rel", - string="New Reviewers", - help="These reviewers will overwrite the existing reviewer_ids in tier.review", - ) - review_ids = fields.Many2many( - comodel_name="tier.review", - string="Affected Tier Reviews", - help="Tier reivews that will be affected by this correction.", - ) - - def _notify_reviewer_change(self, ttype="correct"): - self.ensure_one() - post = "message_post" - if hasattr(self.resource_ref, post): - tier_reviews = self.review_ids - reviews = ", ".join(tier_reviews.filtered("name").mapped("name")) - reviewers = ", ".join( - tier_reviews.reviewer_ids.filtered("name").mapped("name") - ) - message = self.env._( - "The Correction '%(name)s', " - "corrrected reviewers " - "on '%(reviews)s' to '%(reviewers)s'", - name=self.correction_id.name, - reviews=reviews, - reviewers=reviewers, - ) - if ttype == "revert": - message = self.env._( - "The Correction '%(name)s', " - "reverted reviewers on '%(reviews)s' " - "back to '%(reviewers)s'", - name=self.correction_id.name, - reviews=reviews, - reviewers=reviewers, - ) - getattr(self.resource_ref.sudo(), post)( - subtype_xmlid=( - "base_tier_validation_correction.mt_tier_validation_correction" - ), - body=message, - ) - - def correct(self): - for item in self: - # Only waiting/pending reviews will gets updated - reviews = item.review_ids.filtered( - lambda record: record.status in ["waiting", "pending"] - ) - reviews.write({"reviewer_ids": [Command.set(item.new_reviewer_ids.ids)]}) - item._notify_reviewer_change("correct") - - def revert(self): - for item in self: - reviews = item.review_ids.filtered( - lambda record: record.status in ["waiting", "pending"] - ) - for review in reviews: - review.reviewer_ids = review._get_reviewers() - item._notify_reviewer_change("revert") diff --git a/base_tier_validation_correction/models/tier_validation.py b/base_tier_validation_correction/models/tier_validation.py deleted file mode 100644 index cb2388c79..000000000 --- a/base_tier_validation_correction/models/tier_validation.py +++ /dev/null @@ -1,45 +0,0 @@ -# Copyright 2020 Ecosoft Co., Ltd. (http://ecosoft.co.th) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from odoo import models -from odoo.fields import Domain -from odoo.tools.safe_eval import safe_eval - - -class TierValidation(models.AbstractModel): - _inherit = "tier.validation" - - def view_tier_correction(self): - self.ensure_one() - # Caller document - res_model = self.env["ir.model"].search(Domain("model", "=", self._name)) - # Prepare to redirect to Tier Correction - action = self.env.ref("base_tier_validation_correction.tier_correction_action") - result = action.sudo().read()[0] - # Setup default values - ctx = result.get("context", {}) - if ctx: - ctx = safe_eval(ctx) - ctx.update( - { - "default_name": f"{self.display_name} ...", - "default_model_id": res_model.id, - "default_search_name": self.display_name, - "default_correction_type": "reviewer", - } - ) - result["context"] = ctx - items = self.env["tier.correction.item"].search_fetch( - Domain("res_model", "=", self._name) & Domain("res_id", "=", self.id), - ["correction_id"], - ) - if len(items) > 0: # Already has corrections, show them. - result["domain"] = list( - Domain("id", "in", items.mapped("correction_id").ids) - ) - else: # No correction, create one - res = self.env.ref( - "base_tier_validation_correction.tier_correction_view_form", False - ) - result["views"] = [(res and res.id or False, "form")] - return result diff --git a/base_tier_validation_correction/pyproject.toml b/base_tier_validation_correction/pyproject.toml deleted file mode 100644 index 4231d0ccc..000000000 --- a/base_tier_validation_correction/pyproject.toml +++ /dev/null @@ -1,3 +0,0 @@ -[build-system] -requires = ["whool"] -build-backend = "whool.buildapi" diff --git a/base_tier_validation_correction/readme/CONFIGURE.md b/base_tier_validation_correction/readme/CONFIGURE.md deleted file mode 100644 index 12e2e671e..000000000 --- a/base_tier_validation_correction/readme/CONFIGURE.md +++ /dev/null @@ -1,2 +0,0 @@ -Person that can use the tier review correction, must has access right to -group *Tier Review Correction* diff --git a/base_tier_validation_correction/readme/CONTRIBUTORS.md b/base_tier_validation_correction/readme/CONTRIBUTORS.md deleted file mode 100644 index f5ec5ac47..000000000 --- a/base_tier_validation_correction/readme/CONTRIBUTORS.md +++ /dev/null @@ -1,2 +0,0 @@ -- Kitti U. \<\> -- Chau Le \<\> diff --git a/base_tier_validation_correction/readme/DESCRIPTION.md b/base_tier_validation_correction/readme/DESCRIPTION.md deleted file mode 100644 index af7e6e4ea..000000000 --- a/base_tier_validation_correction/readme/DESCRIPTION.md +++ /dev/null @@ -1,14 +0,0 @@ -This module provide a new operation to correct the information in -tier.review for any document under tier validation. - -For example, a document started validation, a tier review is assigned to -Mr. Smith. - -However, since Mr. Smith has urgent business oversea for a few days, all -document need to get approved by Mr. John as person in charge. - -This module allow user with Tier Review Correction role to change the -reviewer to Mr. John. - -Note: Currently, only correction type available is to reassign the -reviewer, but it is possible to add in the future. diff --git a/base_tier_validation_correction/readme/USAGE.md b/base_tier_validation_correction/readme/USAGE.md deleted file mode 100644 index 0e0c978c2..000000000 --- a/base_tier_validation_correction/readme/USAGE.md +++ /dev/null @@ -1,41 +0,0 @@ -To create/edit Tier Review Correction - -- Login as user with Tier Review Correction role -- Go to menu Settings \> Technical \> Tier Validation \> Tier Review - Correction -- Create a new tier correction, by selecting, - - Correction Type, in this case, Reassign Reviewer(s) - - Document Model, i.e., Purchase order -- Find documents with pending reviews by, - - Reviewer(s) - - Name Search -- Then set default value to change, in this case, - - New Reviewer(s) -- Click button "Prepare", if any document matched, it should list in - Correction Detail table. -- For each correction line, user can still change the affected tier - reviews, and new reviewers. -- Click button "Make Correction" to finalize the operation. -- As an option, click on "Revert Back" to set back to original status. - - For case Reassign Reviewer(s), system to get the original reviewers - from tier definition as set it back. - -Quick access, from a working document, to create/view Tier Review -Correction - -- As user with Tier Review Correction role -- On any document, i.e., Purchase Order, with validation already - started. -- On the yellow banner (pending state), click on "Change Reviewer" link - on its right side. - - If this document has no Correction yet, it will create new. - - If the document already has some Corrections, it will show those - corrections. - -To run the Tier Review Correction by scheduled job - -- As user with Tier Review Correction role -- On any Tier Review Correction, open tab "Scheduled Action" -- Setup the datetime to Scheduled Correct and Scheduled Revert. By - default, scheduled action "Tier Correction Scheduler" will run every 1 - hour. diff --git a/base_tier_validation_correction/security/correction_groups.xml b/base_tier_validation_correction/security/correction_groups.xml deleted file mode 100644 index 49c8081b5..000000000 --- a/base_tier_validation_correction/security/correction_groups.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - Tier Review Correction - - - - Allowed - - - - diff --git a/base_tier_validation_correction/security/ir.model.access.csv b/base_tier_validation_correction/security/ir.model.access.csv deleted file mode 100644 index 809ff3f4d..000000000 --- a/base_tier_validation_correction/security/ir.model.access.csv +++ /dev/null @@ -1,6 +0,0 @@ -id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -access_tier_correction_admin,access.tier.correction.item.admin,model_tier_correction,group_tier_correction,1,1,1,1 -access_tier_correction_item_admin,access.tier.correction.item.admin,model_tier_correction_item,group_tier_correction,1,1,1,1 -access_tier_correction_user,access.tier.correction.item.user,model_tier_correction,base.group_user,1,0,0,0 -access_tier_correction_item_user,access.tier.correction.item.user,model_tier_correction_item,base.group_user,1,0,0,0 -access_affected_tier_reviews,access_affected_tier_reviews,model_affected_tier_reviews,base.group_user,1,0,0,0 diff --git a/base_tier_validation_correction/static/description/index.html b/base_tier_validation_correction/static/description/index.html deleted file mode 100644 index aee205bb5..000000000 --- a/base_tier_validation_correction/static/description/index.html +++ /dev/null @@ -1,509 +0,0 @@ - - - - - -README.rst - - - -
- - - -Odoo Community Association - -
-

Base Tier Validation Correction

- -

Alpha License: AGPL-3 OCA/tier-validation Translate me on Weblate Try me on Runboat

-

This module provide a new operation to correct the information in -tier.review for any document under tier validation.

-

For example, a document started validation, a tier review is assigned to -Mr. Smith.

-

However, since Mr. Smith has urgent business oversea for a few days, all -document need to get approved by Mr. John as person in charge.

-

This module allow user with Tier Review Correction role to change the -reviewer to Mr. John.

-

Note: Currently, only correction type available is to reassign the -reviewer, but it is possible to add in the future.

-
-

Important

-

This is an alpha version, the data model and design can change at any time without warning. -Only for development or testing purpose, do not use in production. -More details on development status

-
-

Table of contents

- -
-

Configuration

-

Person that can use the tier review correction, must has access right to -group Tier Review Correction

-
-
-

Usage

-

To create/edit Tier Review Correction

-
    -
  • Login as user with Tier Review Correction role
  • -
  • Go to menu Settings > Technical > Tier Validation > Tier Review -Correction
  • -
  • Create a new tier correction, by selecting,
      -
    • Correction Type, in this case, Reassign Reviewer(s)
    • -
    • Document Model, i.e., Purchase order
    • -
    -
  • -
  • Find documents with pending reviews by,
      -
    • Reviewer(s)
    • -
    • Name Search
    • -
    -
  • -
  • Then set default value to change, in this case,
      -
    • New Reviewer(s)
    • -
    -
  • -
  • Click button “Prepare”, if any document matched, it should list in -Correction Detail table.
  • -
  • For each correction line, user can still change the affected tier -reviews, and new reviewers.
  • -
  • Click button “Make Correction” to finalize the operation.
  • -
  • As an option, click on “Revert Back” to set back to original status.
      -
    • For case Reassign Reviewer(s), system to get the original reviewers -from tier definition as set it back.
    • -
    -
  • -
-

Quick access, from a working document, to create/view Tier Review -Correction

-
    -
  • As user with Tier Review Correction role
  • -
  • On any document, i.e., Purchase Order, with validation already -started.
  • -
  • On the yellow banner (pending state), click on “Change Reviewer” link -on its right side.
      -
    • If this document has no Correction yet, it will create new.
    • -
    • If the document already has some Corrections, it will show those -corrections.
    • -
    -
  • -
-

To run the Tier Review Correction by scheduled job

-
    -
  • As user with Tier Review Correction role
  • -
  • On any Tier Review Correction, open tab “Scheduled Action”
  • -
  • Setup the datetime to Scheduled Correct and Scheduled Revert. By -default, scheduled action “Tier Correction Scheduler” will run every 1 -hour.
  • -
-
-
-

Bug Tracker

-

Bugs are tracked on GitHub 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.

-

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

-
-
-

Credits

-
-

Authors

-
    -
  • Ecosoft
  • -
-
-
-

Contributors

- -
-
-

Maintainers

-

This module is maintained by the OCA.

- -Odoo Community Association - -

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.

-

Current maintainer:

-

kittiu

-

This module is part of the OCA/tier-validation project on GitHub.

-

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

-
-
-
-
- - diff --git a/base_tier_validation_correction/templates/tier_validation_templates.xml b/base_tier_validation_correction/templates/tier_validation_templates.xml deleted file mode 100644 index 1d6591c19..000000000 --- a/base_tier_validation_correction/templates/tier_validation_templates.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - diff --git a/base_tier_validation_correction/tests/__init__.py b/base_tier_validation_correction/tests/__init__.py deleted file mode 100644 index b439a531d..000000000 --- a/base_tier_validation_correction/tests/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# Copyright 2020 Ecosoft Co., Ltd. (http://ecosoft.co.th) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -from . import test_tier_validation diff --git a/base_tier_validation_correction/tests/test_tier_validation.py b/base_tier_validation_correction/tests/test_tier_validation.py deleted file mode 100644 index 273e2fdec..000000000 --- a/base_tier_validation_correction/tests/test_tier_validation.py +++ /dev/null @@ -1,143 +0,0 @@ -# Copyright 2018 ForgeFlow S.L. -# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html). -from datetime import timedelta - -from odoo import Command, fields -from odoo.exceptions import ValidationError -from odoo.orm.model_classes import add_to_registry - -from odoo.addons.base_tier_validation.tests.common import CommonTierValidation - - -class TierTierValidation(CommonTierValidation): - @classmethod - def setUpClass(cls): - super().setUpClass() - from .tier_validation_tester import TierValidationTester - - add_to_registry(cls.registry, TierValidationTester) - cls.registry._setup_models__(cls.env.cr, ["tier.validation.tester"]) - cls.registry.init_models( - cls.env.cr, - ["tier.validation.tester"], - {"models_to_check": True}, - ) - - def setUp(self): - super().setUp() - self.test_record.name = "test" - - def test_01_tier_correction(self): - """With the document in validation, - - User click on Change Reviewer to creat new correction - - Change the reviewer to user 2, test that user 2 need_validation - - Revert to user 1, test that now user 1 need validation - - Click on Change Review link from the document again, then view the corrections - """ - # User 2, request validation - doc_user2 = self.test_record.with_user(self.test_user_2.id) - reviews = doc_user2.request_validation() - self.assertEqual(reviews.status, "pending") - self.assertFalse(doc_user2.can_review) - # User 1, is the reviewer as specified in the tier.definition - doc_user1 = self.test_record.with_user(self.test_user_1.id) - doc_user1.invalidate_recordset() - self.assertTrue(doc_user1.can_review) - # Change Reviewer from user 1 -> user 2 - ctx = {"active_id": doc_user1.id, "active_model": doc_user1._name} - res = doc_user1.with_context(**ctx).view_tier_correction() - self.assertFalse(res["domain"]) # No existing correction, create new - correction = self.env["tier.correction"].create( - { - "name": res["context"].get("default_name"), - "search_name": res["context"].get("default_search_name"), - "model_id": res["context"].get("default_model_id"), - "correction_type": res["context"].get("default_correction_type"), - "new_reviewer_ids": [Command.set(self.test_user_2.ids)], - "old_reviewer_ids": [Command.set(self.test_user_1.ids)], - } - ) - # Only on state = 'prepare', to allow correction - with self.assertRaises(ValidationError): - correction.do_correct() - # Test cancel -> draft - correction.action_cancel() - self.assertEqual(correction.state, "cancel") - correction.action_draft() - self.assertEqual(correction.state, "draft") - # Test view scheduled action - action = correction.view_scheduled_action() - self.assertEqual(action["name"], "Scheduled Actions") - # Continue - correction.action_prepare() - self.assertEqual(correction.state, "prepare") - self.assertTrue(correction.reference) - with self.assertRaises(ValidationError): - correction.do_revert() - item = correction.item_ids[0] - self.assertEqual(item.resource_ref, self.test_record) - self.assertEqual(item.new_reviewer_ids, correction.new_reviewer_ids) - # View affected tier.reviews - AffectedReview = self.env["affected.tier.reviews"] - reviews = AffectedReview.with_context(active_id=item.id)._default_review_ids() - self.assertTrue(reviews) - # Make correction, now user 2 can review - correction.action_done() - doc_user2.invalidate_recordset() - self.assertTrue(doc_user2.can_review) - doc_user1.invalidate_recordset() - self.assertFalse(doc_user1.can_review) - # Make reversion, now user 1 can review - correction.action_revert() - doc_user1.invalidate_recordset() - self.assertTrue(doc_user1.can_review) - doc_user2.invalidate_recordset() - self.assertFalse(doc_user2.can_review) - # From the document, view tier correction once again - res = doc_user1.with_context(**ctx).view_tier_correction() - self.assertEqual(res["domain"][0][2], [correction.id]) - - def test_01_tier_correction_by_scheduler(self): - """With the document in validation, - - User click on Change Reviewer to creat new correction - - Setup Scheduled Correction Date and Scheduled Revert, test date constraints - - Run scheduler which change reviewer to user 2, test user 2 need_validation - - Run scheduler which revert to user 1, test user 1 need validation - """ - # User 2, request validation - doc_user2 = self.test_record.with_user(self.test_user_2.id) - reviews = doc_user2.request_validation() - self.assertEqual(reviews.status, "pending") - self.assertFalse(doc_user2.can_review) - # User 1, is the reviewer as specified in the tier.definition - doc_user1 = self.test_record.with_user(self.test_user_1.id) - doc_user1.invalidate_recordset() - self.assertTrue(doc_user1.can_review) - # Change Reviewer from user 1 -> user 2 - ctx = {"active_id": doc_user1.id, "active_model": doc_user1._name} - res = doc_user1.with_context(**ctx).view_tier_correction() - self.assertFalse(res["domain"]) # No existing correction, create new - correction = self.env["tier.correction"].create( - { - "name": res["context"].get("default_name"), - "search_name": res["context"].get("default_search_name"), - "model_id": res["context"].get("default_model_id"), - "correction_type": res["context"].get("default_correction_type"), - "new_reviewer_ids": [Command.set(self.test_user_2.ids)], - } - ) - # Run Schedulder, to correct - correction.date_schedule_correct = fields.Datetime.now() - correction.action_prepare() - self.assertEqual(correction.state, "prepare") - self.env["tier.correction"]._tier_correction_auto_run() - self.assertTrue(doc_user2.can_review) - self.assertFalse(doc_user1.can_review) - # Run Schedulder, to revert - with self.assertRaises(ValidationError): - correction.date_schedule_revert = fields.Datetime.now() - timedelta(days=1) - correction.date_schedule_revert = fields.Datetime.now() - self.assertEqual(correction.state, "done") - self.env["tier.correction"]._tier_correction_auto_run() - self.assertTrue(doc_user1.can_review) - self.assertFalse(doc_user2.can_review) diff --git a/base_tier_validation_correction/tests/tier_validation_tester.py b/base_tier_validation_correction/tests/tier_validation_tester.py deleted file mode 100644 index 567ca251c..000000000 --- a/base_tier_validation_correction/tests/tier_validation_tester.py +++ /dev/null @@ -1,8 +0,0 @@ -from odoo import fields, models - - -class TierValidationTester(models.Model): - _inherit = "tier.validation.tester" - _rec_name = "name" - - name = fields.Char() diff --git a/base_tier_validation_correction/views/tier_correction_view.xml b/base_tier_validation_correction/views/tier_correction_view.xml deleted file mode 100644 index 4513cb5f9..000000000 --- a/base_tier_validation_correction/views/tier_correction_view.xml +++ /dev/null @@ -1,264 +0,0 @@ - - - - - tier.correction.list - tier.correction - - - - - - - - - - - tier.correction.form - tier.correction - -
-
-
- -
-
- Name -

- -

-
- - - - - - - - - - - -

- This is optional search criteria to find matched document into Correction Details. - Only document with pending reviews will be listed. -

- - -
- -

- Default new reviewers to be assigned to the correction. This value can be overwritten in - Correction Detail. -

- -
-
- - - - - - - -
- - - - - - - - - - - - -
- - - -
-
- - tier.correction.search - tier.correction - - - - - - - - - - - - - - - Tier Review Correction - ir.actions.act_window - tier.correction - list,form - {} - - -
diff --git a/base_tier_validation_correction/wizards/__init__.py b/base_tier_validation_correction/wizards/__init__.py deleted file mode 100644 index 86bed5c2b..000000000 --- a/base_tier_validation_correction/wizards/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# Copyright 2020 Ecosoft Co., Ltd. (http://ecosoft.co.th) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -from . import affected_tier_reviews diff --git a/base_tier_validation_correction/wizards/affected_tier_reviews.py b/base_tier_validation_correction/wizards/affected_tier_reviews.py deleted file mode 100644 index d1b9f4c7c..000000000 --- a/base_tier_validation_correction/wizards/affected_tier_reviews.py +++ /dev/null @@ -1,18 +0,0 @@ -# Copyright 2020 Ecosoft - (http://ecosoft.co.th) -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from odoo import fields, models - - -class AffectedTierReviews(models.TransientModel): - _name = "affected.tier.reviews" - _description = "Show Affected Tier Reviews" - - review_ids = fields.Many2many( - comodel_name="tier.review", - default=lambda self: self._default_review_ids(), - ) - - def _default_review_ids(self): - res_id = self.env.context.get("active_id") - correction_item = self.env["tier.correction.item"].browse(res_id) - return correction_item.review_ids.ids diff --git a/base_tier_validation_correction/wizards/affected_tier_reviews.xml b/base_tier_validation_correction/wizards/affected_tier_reviews.xml deleted file mode 100644 index 9267ec2c5..000000000 --- a/base_tier_validation_correction/wizards/affected_tier_reviews.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - affected.tier.reviews.form - affected.tier.reviews - -
- - - -
-
-
-
-
- - Affected Tier Reviews - affected.tier.reviews - form - new - -
diff --git a/base_tier_validation_formula/README.rst b/base_tier_validation_formula/README.rst deleted file mode 100644 index ca876f2c6..000000000 --- a/base_tier_validation_formula/README.rst +++ /dev/null @@ -1,108 +0,0 @@ -.. 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 Formula -============================ - -.. - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! This file is generated by oca-gen-addon-readme !! - !! changes will be overwritten. !! - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:4720ae953809b68d7af621235ee072e0267eb0a0f726cd235557b546be782f78 - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -.. |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%2Ftier--validation-lightgray.png?logo=github - :target: https://github.com/OCA/tier-validation/tree/19.0/base_tier_validation_formula - :alt: OCA/tier-validation -.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/tier-validation-19-0/tier-validation-19-0-base_tier_validation_formula - :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/tier-validation&target_branch=19.0 - :alt: Try me on Runboat - -|badge1| |badge2| |badge3| |badge4| |badge5| - -This module includes the ability to define the tier definition domain -and the tier reviewers using python code. - -**Table of contents** - -.. contents:: - :local: - -Usage -===== - -To define the domain, \* By python code choose the **Formula** option in -the Definition field. \* By both domain and python code, choose the -**Domain & Formula** option in the Definition field. - -To define the reviewers by python code choose **Python Expression** -option in the Validated by field. - -Bug Tracker -=========== - -Bugs are tracked on `GitHub 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 `_. - -Do not contact contributors directly about support or help with technical issues. - -Credits -======= - -Authors -------- - -* Creu Blanca - -Contributors ------------- - -- Enric Tobella - -- Adrià Gil Sorribes - -- Pedro Gonzalez - -- Pimolnat Suntian - -- `Trobz `__: - - - Hoang Diep - - Son Ho - -Other credits -------------- - -The migration of this module from 15.0 to 16.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. - -This module is part of the `OCA/tier-validation `_ project on GitHub. - -You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/base_tier_validation_formula/__init__.py b/base_tier_validation_formula/__init__.py deleted file mode 100644 index 0650744f6..000000000 --- a/base_tier_validation_formula/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from . import models diff --git a/base_tier_validation_formula/__manifest__.py b/base_tier_validation_formula/__manifest__.py deleted file mode 100644 index 3d16ee1af..000000000 --- a/base_tier_validation_formula/__manifest__.py +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright 2019 Creu Blanca -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). - -{ - "name": "Base Tier Validation Formula", - "summary": """ - Formulas for Base tier validation""", - "version": "19.0.1.1.0", - "category": "Tools", - "license": "AGPL-3", - "development_status": "Mature", - "author": "Creu Blanca,Odoo Community Association (OCA)", - "website": "https://github.com/OCA/tier-validation", - "depends": ["base_tier_validation"], - "data": ["views/tier_definition_view.xml"], - "demo": [], -} diff --git a/base_tier_validation_formula/i18n/base_tier_validation_formula.pot b/base_tier_validation_formula/i18n/base_tier_validation_formula.pot deleted file mode 100644 index 7ba6c3921..000000000 --- a/base_tier_validation_formula/i18n/base_tier_validation_formula.pot +++ /dev/null @@ -1,129 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * base_tier_validation_formula -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 19.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_tier_validation_formula -#: model_terms:ir.ui.view,arch_db:base_tier_validation_formula.tier_definition_view_form -msgid "" -"# Available locals:\n" -"# - rec: current record\n" -"# - Expects a recordset of res.users\n" -"rec.env.user" -msgstr "" - -#. module: base_tier_validation_formula -#: model_terms:ir.ui.view,arch_db:base_tier_validation_formula.tier_definition_view_form -msgid "" -"# Available locals:\n" -"# - rec: current record\n" -"True" -msgstr "" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_definition__definition_type -msgid "Definition" -msgstr "" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_definition__display_name -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_review__display_name -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_validation__display_name -msgid "Display Name" -msgstr "" - -#. module: base_tier_validation_formula -#: model:ir.model.fields.selection,name:base_tier_validation_formula.selection__tier_definition__definition_type__domain_formula -msgid "Domain & Formula" -msgstr "" - -#. module: base_tier_validation_formula -#. odoo-python -#: code:addons/base_tier_validation_formula/models/tier_review.py:0 -#: code:addons/base_tier_validation_formula/models/tier_validation.py:0 -msgid "" -"Error evaluating tier validation conditions.\n" -" %s" -msgstr "" - -#. module: base_tier_validation_formula -#: model:ir.model.fields.selection,name:base_tier_validation_formula.selection__tier_definition__definition_type__formula -msgid "Formula" -msgstr "" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_definition__id -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_review__id -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_validation__id -msgid "ID" -msgstr "" - -#. module: base_tier_validation_formula -#: model:ir.model.fields.selection,name:base_tier_validation_formula.selection__tier_definition__review_type__expression -msgid "Python Expression" -msgstr "" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_definition__reviewer_expression -msgid "Review Expression" -msgstr "" - -#. module: base_tier_validation_formula -#. odoo-python -#: code:addons/base_tier_validation_formula/models/tier_review.py:0 -msgid "Reviewer python expression must return a res.users recordset." -msgstr "" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_review__python_reviewer_ids -msgid "Reviewers from Python expression" -msgstr "" - -#. module: base_tier_validation_formula -#: model:ir.model,name:base_tier_validation_formula.model_tier_definition -msgid "Tier Definition" -msgstr "" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_definition__python_code -msgid "Tier Definition Expression" -msgstr "" - -#. module: base_tier_validation_formula -#: model:ir.model,name:base_tier_validation_formula.model_tier_review -msgid "Tier Review" -msgstr "" - -#. module: base_tier_validation_formula -#: model:ir.model,name:base_tier_validation_formula.model_tier_validation -msgid "Tier Validation (abstract)" -msgstr "" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_definition__review_type -msgid "Validated by" -msgstr "" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,help:base_tier_validation_formula.field_tier_definition__reviewer_expression -msgid "" -"Write Python code that defines the reviewer. The result of executing the " -"expression must be a res.users recordset." -msgstr "" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,help:base_tier_validation_formula.field_tier_definition__python_code -msgid "" -"Write Python code that defines when this tier confirmation will be needed. " -"The result of executing the expresion must be a boolean." -msgstr "" diff --git a/base_tier_validation_formula/i18n/es.po b/base_tier_validation_formula/i18n/es.po deleted file mode 100644 index e530c359d..000000000 --- a/base_tier_validation_formula/i18n/es.po +++ /dev/null @@ -1,149 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * base_tier_validation_formula -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 13.0\n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2021-03-16 11:46+0000\n" -"Last-Translator: Ana Suárez \n" -"Language-Team: none\n" -"Language: es\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.3.2\n" - -#. module: base_tier_validation_formula -#: model_terms:ir.ui.view,arch_db:base_tier_validation_formula.tier_definition_view_form -msgid "" -"# Available locals:\n" -"# - rec: current record\n" -"# - Expects a recordset of res.users\n" -"rec.env.user" -msgstr "" - -#. module: base_tier_validation_formula -#: model_terms:ir.ui.view,arch_db:base_tier_validation_formula.tier_definition_view_form -msgid "" -"# Available locals:\n" -"# - rec: current record\n" -"True" -msgstr "" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_definition__definition_type -msgid "Definition" -msgstr "Definición" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_definition__display_name -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_review__display_name -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_validation__display_name -msgid "Display Name" -msgstr "" - -#. module: base_tier_validation_formula -#: model:ir.model.fields.selection,name:base_tier_validation_formula.selection__tier_definition__definition_type__domain_formula -msgid "Domain & Formula" -msgstr "Dominio & Fórmula" - -#. module: base_tier_validation_formula -#. odoo-python -#: code:addons/base_tier_validation_formula/models/tier_review.py:0 -#: code:addons/base_tier_validation_formula/models/tier_validation.py:0 -msgid "" -"Error evaluating tier validation conditions.\n" -" %s" -msgstr "" -"Error evaluando las condiciones de validación de nivel.\n" -"%s" - -#. module: base_tier_validation_formula -#: model:ir.model.fields.selection,name:base_tier_validation_formula.selection__tier_definition__definition_type__formula -msgid "Formula" -msgstr "Fórmula" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_definition__id -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_review__id -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_validation__id -msgid "ID" -msgstr "" - -#. module: base_tier_validation_formula -#: model:ir.model.fields.selection,name:base_tier_validation_formula.selection__tier_definition__review_type__expression -msgid "Python Expression" -msgstr "Expresión Python" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_definition__reviewer_expression -msgid "Review Expression" -msgstr "Expresión de Revisión" - -#. module: base_tier_validation_formula -#. odoo-python -#: code:addons/base_tier_validation_formula/models/tier_review.py:0 -msgid "Reviewer python expression must return a res.users recordset." -msgstr "" -"La expresión python del revisor debe retornar un conjunto de registros de " -"res.users." - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_review__python_reviewer_ids -msgid "Reviewers from Python expression" -msgstr "Revisores desde una expresión Python" - -#. module: base_tier_validation_formula -#: model:ir.model,name:base_tier_validation_formula.model_tier_definition -msgid "Tier Definition" -msgstr "Definición de Nivel" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_definition__python_code -msgid "Tier Definition Expression" -msgstr "Expresión de Definición de Nivel" - -#. module: base_tier_validation_formula -#: model:ir.model,name:base_tier_validation_formula.model_tier_review -msgid "Tier Review" -msgstr "Definición de nivel" - -#. module: base_tier_validation_formula -#: model:ir.model,name:base_tier_validation_formula.model_tier_validation -msgid "Tier Validation (abstract)" -msgstr "Validación de Nivel (abstracto)" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_definition__review_type -msgid "Validated by" -msgstr "Validado por" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,help:base_tier_validation_formula.field_tier_definition__reviewer_expression -msgid "" -"Write Python code that defines the reviewer. The result of executing the " -"expression must be a res.users recordset." -msgstr "" -"Escribe código Python que defina al revisor. El resultado de ejecutar la " -"expresión debe devolver un conjunto de registros de res.users." - -#. module: base_tier_validation_formula -#: model:ir.model.fields,help:base_tier_validation_formula.field_tier_definition__python_code -msgid "" -"Write Python code that defines when this tier confirmation will be needed. " -"The result of executing the expresion must be a boolean." -msgstr "" -"Escribe código Python que defina si la confirmación de nivel es necesaria. " -"El resultado de ejecutar la expresión debe ser un booleano." - -#~ msgid "Any user in a specific group." -#~ msgstr "Cualquier usuario de un grupo específico." - -#~ msgid "Domain" -#~ msgstr "Dominio" - -#~ msgid "Specific user" -#~ msgstr "Usuario específico" diff --git a/base_tier_validation_formula/i18n/it.po b/base_tier_validation_formula/i18n/it.po deleted file mode 100644 index 999ae644b..000000000 --- a/base_tier_validation_formula/i18n/it.po +++ /dev/null @@ -1,145 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * base_tier_validation_formula -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 13.0\n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-07-27 11:46+0000\n" -"Last-Translator: mymage \n" -"Language-Team: none\n" -"Language: it\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.15.2\n" - -#. module: base_tier_validation_formula -#: model_terms:ir.ui.view,arch_db:base_tier_validation_formula.tier_definition_view_form -msgid "" -"# Available locals:\n" -"# - rec: current record\n" -"# - Expects a recordset of res.users\n" -"rec.env.user" -msgstr "" -"# Disponibili:\n" -"# - rec: record attuale\n" -"# - Attesa di un recordset di res.users\n" -"rec.env.user" - -#. module: base_tier_validation_formula -#: model_terms:ir.ui.view,arch_db:base_tier_validation_formula.tier_definition_view_form -msgid "" -"# Available locals:\n" -"# - rec: current record\n" -"True" -msgstr "" -"# Disponibili:\n" -"# - rec: record attuale\n" -"True" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_definition__definition_type -msgid "Definition" -msgstr "Definizione" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_definition__display_name -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_review__display_name -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_validation__display_name -msgid "Display Name" -msgstr "Nome visualizzato" - -#. module: base_tier_validation_formula -#: model:ir.model.fields.selection,name:base_tier_validation_formula.selection__tier_definition__definition_type__domain_formula -msgid "Domain & Formula" -msgstr "Dominio e Formula" - -#. module: base_tier_validation_formula -#. odoo-python -#: code:addons/base_tier_validation_formula/models/tier_review.py:0 -#: code:addons/base_tier_validation_formula/models/tier_validation.py:0 -msgid "" -"Error evaluating tier validation conditions.\n" -" %s" -msgstr "" -"Errore valutando le condizioni di validazione del livello.\n" -" %s" - -#. module: base_tier_validation_formula -#: model:ir.model.fields.selection,name:base_tier_validation_formula.selection__tier_definition__definition_type__formula -msgid "Formula" -msgstr "Formula" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_definition__id -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_review__id -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_validation__id -msgid "ID" -msgstr "ID" - -#. module: base_tier_validation_formula -#: model:ir.model.fields.selection,name:base_tier_validation_formula.selection__tier_definition__review_type__expression -msgid "Python Expression" -msgstr "Espressione Python" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_definition__reviewer_expression -msgid "Review Expression" -msgstr "Espressione Approvazione" - -#. module: base_tier_validation_formula -#. odoo-python -#: code:addons/base_tier_validation_formula/models/tier_review.py:0 -msgid "Reviewer python expression must return a res.users recordset." -msgstr "L'espressione Python revisore deve restituire un recordset res.user." - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_review__python_reviewer_ids -msgid "Reviewers from Python expression" -msgstr "Approvatori da espressione Python" - -#. module: base_tier_validation_formula -#: model:ir.model,name:base_tier_validation_formula.model_tier_definition -msgid "Tier Definition" -msgstr "Definizione livello" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_definition__python_code -msgid "Tier Definition Expression" -msgstr "Espressione Definizione Livello" - -#. module: base_tier_validation_formula -#: model:ir.model,name:base_tier_validation_formula.model_tier_review -msgid "Tier Review" -msgstr "Revisione livello" - -#. module: base_tier_validation_formula -#: model:ir.model,name:base_tier_validation_formula.model_tier_validation -msgid "Tier Validation (abstract)" -msgstr "Validazione livello (sintesi)" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_definition__review_type -msgid "Validated by" -msgstr "Approvato da" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,help:base_tier_validation_formula.field_tier_definition__reviewer_expression -msgid "" -"Write Python code that defines the reviewer. The result of executing the " -"expression must be a res.users recordset." -msgstr "" -"Scrivere il codice Python che definisce il revisore. Il risultato " -"dell'esecuzione dell'espressione deve essere un recordset res.user." - -#. module: base_tier_validation_formula -#: model:ir.model.fields,help:base_tier_validation_formula.field_tier_definition__python_code -msgid "" -"Write Python code that defines when this tier confirmation will be needed. " -"The result of executing the expresion must be a boolean." -msgstr "" -"Scrivere codice Python che definisce quando questa conferma sarà necessaria. " -"Il risultato dell'espressione deve essere un booleano." diff --git a/base_tier_validation_formula/i18n/nl.po b/base_tier_validation_formula/i18n/nl.po deleted file mode 100644 index 5ed920d98..000000000 --- a/base_tier_validation_formula/i18n/nl.po +++ /dev/null @@ -1,145 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * base_tier_validation_formula -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 19.0\n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-07-24 17:40+0000\n" -"Last-Translator: Bosd \n" -"Language-Team: none\n" -"Language: nl\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.15.2\n" - -#. module: base_tier_validation_formula -#: model_terms:ir.ui.view,arch_db:base_tier_validation_formula.tier_definition_view_form -#, fuzzy -msgid "" -"# Available locals:\n" -"# - rec: current record\n" -"# - Expects a recordset of res.users\n" -"rec.env.user" -msgstr "" -"# Available locals:\n" -"# - rec: current record\n" -"# - Expects a recordset of res.users\n" -"rec.env.user" - -#. module: base_tier_validation_formula -#: model_terms:ir.ui.view,arch_db:base_tier_validation_formula.tier_definition_view_form -msgid "" -"# Available locals:\n" -"# - rec: current record\n" -"True" -msgstr "" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_definition__definition_type -msgid "Definition" -msgstr "Definitie" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_definition__display_name -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_review__display_name -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_validation__display_name -msgid "Display Name" -msgstr "Schermnaam" - -#. module: base_tier_validation_formula -#: model:ir.model.fields.selection,name:base_tier_validation_formula.selection__tier_definition__definition_type__domain_formula -msgid "Domain & Formula" -msgstr "Domein & Formule" - -#. module: base_tier_validation_formula -#. odoo-python -#: code:addons/base_tier_validation_formula/models/tier_review.py:0 -#: code:addons/base_tier_validation_formula/models/tier_validation.py:0 -msgid "" -"Error evaluating tier validation conditions.\n" -" %s" -msgstr "" -"Fout bij het evalueren van de voorwaarden voor de niveauvalidatie.\n" -" %s" - -#. module: base_tier_validation_formula -#: model:ir.model.fields.selection,name:base_tier_validation_formula.selection__tier_definition__definition_type__formula -msgid "Formula" -msgstr "Formule" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_definition__id -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_review__id -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_validation__id -msgid "ID" -msgstr "ID" - -#. module: base_tier_validation_formula -#: model:ir.model.fields.selection,name:base_tier_validation_formula.selection__tier_definition__review_type__expression -msgid "Python Expression" -msgstr "Python-expressie" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_definition__reviewer_expression -msgid "Review Expression" -msgstr "Beoordelingsexpressie" - -#. module: base_tier_validation_formula -#. odoo-python -#: code:addons/base_tier_validation_formula/models/tier_review.py:0 -msgid "Reviewer python expression must return a res.users recordset." -msgstr "" -"De Python-expressie voor de beoordelaar moet een res.users-recordset " -"retourneren." - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_review__python_reviewer_ids -msgid "Reviewers from Python expression" -msgstr "Beoordelaars uit Python-expressie" - -#. module: base_tier_validation_formula -#: model:ir.model,name:base_tier_validation_formula.model_tier_definition -msgid "Tier Definition" -msgstr "Niveaudefinitie" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_definition__python_code -msgid "Tier Definition Expression" -msgstr "Expressie voor niveaudefinitie" - -#. module: base_tier_validation_formula -#: model:ir.model,name:base_tier_validation_formula.model_tier_review -msgid "Tier Review" -msgstr "Niveaubeoordeling" - -#. module: base_tier_validation_formula -#: model:ir.model,name:base_tier_validation_formula.model_tier_validation -msgid "Tier Validation (abstract)" -msgstr "Niveauvalidatie (abstract)" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_definition__review_type -msgid "Validated by" -msgstr "Gevalideerd door" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,help:base_tier_validation_formula.field_tier_definition__reviewer_expression -msgid "" -"Write Python code that defines the reviewer. The result of executing the " -"expression must be a res.users recordset." -msgstr "" -"Schrijf Python-code die de beoordelaar definieert. Het resultaat van het " -"uitvoeren van de expressie moet een res.users-recordset zijn." - -#. module: base_tier_validation_formula -#: model:ir.model.fields,help:base_tier_validation_formula.field_tier_definition__python_code -msgid "" -"Write Python code that defines when this tier confirmation will be needed. " -"The result of executing the expresion must be a boolean." -msgstr "" -"Schrijf Python-code die definieert wanneer deze niveaubevestiging nodig is. " -"Het resultaat van het uitvoeren van de expressie moet een boolean zijn." diff --git a/base_tier_validation_formula/i18n/tr.po b/base_tier_validation_formula/i18n/tr.po deleted file mode 100644 index bfbd755b2..000000000 --- a/base_tier_validation_formula/i18n/tr.po +++ /dev/null @@ -1,138 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * base_tier_validation_formula -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 18.0\n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2025-07-18 14:25+0000\n" -"Last-Translator: Betül Öğmen \n" -"Language-Team: none\n" -"Language: tr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.10.4\n" - -#. module: base_tier_validation_formula -#: model_terms:ir.ui.view,arch_db:base_tier_validation_formula.tier_definition_view_form -msgid "" -"# Available locals:\n" -"# - rec: current record\n" -"# - Expects a recordset of res.users\n" -"rec.env.user" -msgstr "" - -#. module: base_tier_validation_formula -#: model_terms:ir.ui.view,arch_db:base_tier_validation_formula.tier_definition_view_form -msgid "" -"# Available locals:\n" -"# - rec: current record\n" -"True" -msgstr "" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_definition__definition_type -msgid "Definition" -msgstr "Tanım" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_definition__display_name -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_review__display_name -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_validation__display_name -msgid "Display Name" -msgstr "" - -#. module: base_tier_validation_formula -#: model:ir.model.fields.selection,name:base_tier_validation_formula.selection__tier_definition__definition_type__domain_formula -msgid "Domain & Formula" -msgstr "Bağlam & Formül" - -#. module: base_tier_validation_formula -#. odoo-python -#: code:addons/base_tier_validation_formula/models/tier_review.py:0 -#: code:addons/base_tier_validation_formula/models/tier_validation.py:0 -msgid "" -"Error evaluating tier validation conditions.\n" -" %s" -msgstr "" -"Üst onay şartlarını hesaplarken hata oluştu.\n" -" %s" - -#. module: base_tier_validation_formula -#: model:ir.model.fields.selection,name:base_tier_validation_formula.selection__tier_definition__definition_type__formula -msgid "Formula" -msgstr "Formül" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_definition__id -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_review__id -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_validation__id -msgid "ID" -msgstr "" - -#. module: base_tier_validation_formula -#: model:ir.model.fields.selection,name:base_tier_validation_formula.selection__tier_definition__review_type__expression -msgid "Python Expression" -msgstr "Python İfadesi" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_definition__reviewer_expression -msgid "Review Expression" -msgstr "Değerlendirme İfadesi" - -#. module: base_tier_validation_formula -#. odoo-python -#: code:addons/base_tier_validation_formula/models/tier_review.py:0 -msgid "Reviewer python expression must return a res.users recordset." -msgstr "Değerlendiren python ifadesi bir res.users kayıtseti döndürmelidir." - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_review__python_reviewer_ids -msgid "Reviewers from Python expression" -msgstr "Python ifadesinden Değerlendirenler" - -#. module: base_tier_validation_formula -#: model:ir.model,name:base_tier_validation_formula.model_tier_definition -msgid "Tier Definition" -msgstr "Seviye Tanımı" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_definition__python_code -msgid "Tier Definition Expression" -msgstr "Katman Tanımı İfadesi" - -#. module: base_tier_validation_formula -#: model:ir.model,name:base_tier_validation_formula.model_tier_review -msgid "Tier Review" -msgstr "Katman İncelemesi" - -#. module: base_tier_validation_formula -#: model:ir.model,name:base_tier_validation_formula.model_tier_validation -msgid "Tier Validation (abstract)" -msgstr "Seviye Doğrulaması (özet)" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_definition__review_type -msgid "Validated by" -msgstr "Doğrulayan" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,help:base_tier_validation_formula.field_tier_definition__reviewer_expression -msgid "" -"Write Python code that defines the reviewer. The result of executing the " -"expression must be a res.users recordset." -msgstr "" -"Değerlendireni tanımlayan Python kodunu yazın. Bu ifadenin sonucu res.users " -"kayıtseti olmalıdır." - -#. module: base_tier_validation_formula -#: model:ir.model.fields,help:base_tier_validation_formula.field_tier_definition__python_code -msgid "" -"Write Python code that defines when this tier confirmation will be needed. " -"The result of executing the expresion must be a boolean." -msgstr "" -"Katman onayını gerektiren şartı tanımlayan Python kodunu yazın. Bu ifadenin " -"sonucu boolean olmalıdır." diff --git a/base_tier_validation_formula/i18n/zh_CN.po b/base_tier_validation_formula/i18n/zh_CN.po deleted file mode 100644 index a2282c2a4..000000000 --- a/base_tier_validation_formula/i18n/zh_CN.po +++ /dev/null @@ -1,143 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * base_tier_validation_formula -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 13.0\n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2020-03-28 16:13+0000\n" -"Last-Translator: Dong \n" -"Language-Team: none\n" -"Language: zh_CN\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 3.10\n" - -#. module: base_tier_validation_formula -#: model_terms:ir.ui.view,arch_db:base_tier_validation_formula.tier_definition_view_form -msgid "" -"# Available locals:\n" -"# - rec: current record\n" -"# - Expects a recordset of res.users\n" -"rec.env.user" -msgstr "" - -#. module: base_tier_validation_formula -#: model_terms:ir.ui.view,arch_db:base_tier_validation_formula.tier_definition_view_form -msgid "" -"# Available locals:\n" -"# - rec: current record\n" -"True" -msgstr "" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_definition__definition_type -msgid "Definition" -msgstr "定义" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_definition__display_name -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_review__display_name -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_validation__display_name -msgid "Display Name" -msgstr "" - -#. module: base_tier_validation_formula -#: model:ir.model.fields.selection,name:base_tier_validation_formula.selection__tier_definition__definition_type__domain_formula -msgid "Domain & Formula" -msgstr "域和公式" - -#. module: base_tier_validation_formula -#. odoo-python -#: code:addons/base_tier_validation_formula/models/tier_review.py:0 -#: code:addons/base_tier_validation_formula/models/tier_validation.py:0 -msgid "" -"Error evaluating tier validation conditions.\n" -" %s" -msgstr "" -"错误的层级审批条件。\n" -" %s" - -#. module: base_tier_validation_formula -#: model:ir.model.fields.selection,name:base_tier_validation_formula.selection__tier_definition__definition_type__formula -msgid "Formula" -msgstr "公式" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_definition__id -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_review__id -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_validation__id -msgid "ID" -msgstr "" - -#. module: base_tier_validation_formula -#: model:ir.model.fields.selection,name:base_tier_validation_formula.selection__tier_definition__review_type__expression -msgid "Python Expression" -msgstr "Python表达式" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_definition__reviewer_expression -msgid "Review Expression" -msgstr "审核表达式" - -#. module: base_tier_validation_formula -#. odoo-python -#: code:addons/base_tier_validation_formula/models/tier_review.py:0 -msgid "Reviewer python expression must return a res.users recordset." -msgstr "审核者python表达式必须返回res.users记录集。" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_review__python_reviewer_ids -msgid "Reviewers from Python expression" -msgstr "来自Python表达式的审查者" - -#. module: base_tier_validation_formula -#: model:ir.model,name:base_tier_validation_formula.model_tier_definition -msgid "Tier Definition" -msgstr "层级定义" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_definition__python_code -msgid "Tier Definition Expression" -msgstr "层级定义表达式" - -#. module: base_tier_validation_formula -#: model:ir.model,name:base_tier_validation_formula.model_tier_review -msgid "Tier Review" -msgstr "多层级审批" - -#. module: base_tier_validation_formula -#: model:ir.model,name:base_tier_validation_formula.model_tier_validation -msgid "Tier Validation (abstract)" -msgstr "多层级审批(抽象)" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,field_description:base_tier_validation_formula.field_tier_definition__review_type -msgid "Validated by" -msgstr "审批人" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,help:base_tier_validation_formula.field_tier_definition__reviewer_expression -msgid "" -"Write Python code that defines the reviewer. The result of executing the " -"expression must be a res.users recordset." -msgstr "编写定义审核者的Python代码。执行表达式的结果必须是res.users记录集。" - -#. module: base_tier_validation_formula -#: model:ir.model.fields,help:base_tier_validation_formula.field_tier_definition__python_code -msgid "" -"Write Python code that defines when this tier confirmation will be needed. " -"The result of executing the expresion must be a boolean." -msgstr "编写Python代码,定义何时需要此层确认。执行表达式的结果必须是布尔值。" - -#~ msgid "Any user in a specific group." -#~ msgstr "特定组中的任何用户。" - -#~ msgid "Domain" -#~ msgstr "域" - -#~ msgid "Specific user" -#~ msgstr "具体用户" diff --git a/base_tier_validation_formula/models/__init__.py b/base_tier_validation_formula/models/__init__.py deleted file mode 100644 index 928b46c88..000000000 --- a/base_tier_validation_formula/models/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -from . import tier_definition -from . import tier_validation -from . import tier_review diff --git a/base_tier_validation_formula/models/tier_definition.py b/base_tier_validation_formula/models/tier_definition.py deleted file mode 100644 index 2bd8cc2e0..000000000 --- a/base_tier_validation_formula/models/tier_definition.py +++ /dev/null @@ -1,39 +0,0 @@ -# Copyright 2019 Creu Blanca -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). - -from odoo import api, fields, models - - -class TierDefinition(models.Model): - _inherit = "tier.definition" - - python_code = fields.Text( - string="Tier Definition Expression", - help="Write Python code that defines when this tier confirmation " - "will be needed. The result of executing the expresion must be " - "a boolean.", - default="""# Available locals:\n# - rec: current record\nTrue""", - ) - definition_type = fields.Selection( - selection_add=[("formula", "Formula"), ("domain_formula", "Domain & Formula")] - ) - reviewer_expression = fields.Text( - string="Review Expression", - help="Write Python code that defines the reviewer. " - "The result of executing the expression must be a res.users " - "recordset.", - default="# Available locals:\n# - rec: current record\n" - "# - Expects a recordset of res.users\nrec.env.user", - ) - review_type = fields.Selection(selection_add=[("expression", "Python Expression")]) - - @api.onchange("review_type") - def onchange_review_type(self): - res = super().onchange_review_type() - self.reviewer_expression = ( - "# Available locals:\n" - "# - rec: current record\n" - "# - Expects a recordset of res.users\n" - "rec.env.user" - ) - return res diff --git a/base_tier_validation_formula/models/tier_review.py b/base_tier_validation_formula/models/tier_review.py deleted file mode 100644 index b8e8fe33b..000000000 --- a/base_tier_validation_formula/models/tier_review.py +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright 2019 ForgeFlow S.L. -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from odoo import api, fields, models -from odoo.exceptions import UserError -from odoo.tools.safe_eval import safe_eval - - -class TierReview(models.Model): - _inherit = "tier.review" - - python_reviewer_ids = fields.Many2many( - comodel_name="res.users", - relation="tier_review_python_reviewer_rel", - column1="tier_review_id", - column2="user_id", - string="Reviewers from Python expression", - compute="_compute_python_reviewer_ids", - store=True, - ) - - @api.model - def _get_reviewer_fields(self): - res = super()._get_reviewer_fields() - return res + ["python_reviewer_ids"] - - def _get_reviewers(self): - return super()._get_reviewers() + self.python_reviewer_ids - - @api.depends("definition_id.reviewer_expression", "review_type", "model", "res_id") - def _compute_python_reviewer_ids(self): - for rec in self: - if rec.review_type != "expression": - rec.python_reviewer_ids = self.env["res.users"].browse() - continue - record = rec.env[rec.model].browse(rec.res_id).exists() - try: - reviewer_ids = safe_eval( - rec.definition_id.reviewer_expression, {"rec": record} - ) - except Exception as error: - raise UserError( - rec.env._( - "Error evaluating tier validation conditions.\n %s", error - ) - ) from error - # Check if python expression returns 'res.users' recordset - if ( - not isinstance(reviewer_ids, models.Model) - or reviewer_ids._name != "res.users" - ): - raise UserError( - rec.env._( - "Reviewer python expression must return a res.users recordset." - ) - ) - else: - rec.python_reviewer_ids = reviewer_ids diff --git a/base_tier_validation_formula/models/tier_validation.py b/base_tier_validation_formula/models/tier_validation.py deleted file mode 100644 index eb9a4c5fc..000000000 --- a/base_tier_validation_formula/models/tier_validation.py +++ /dev/null @@ -1,27 +0,0 @@ -# Copyright 2019 Creu Blanca -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). - -from odoo import models -from odoo.exceptions import UserError -from odoo.tools.safe_eval import safe_eval - - -class TierValidation(models.AbstractModel): - _inherit = "tier.validation" - - def evaluate_formula_tier(self, tier): - try: - res = safe_eval(tier.python_code, {"rec": self}) - except Exception as error: - raise UserError( - self.env._("Error evaluating tier validation conditions.\n %s", error) - ) from error - return res - - def evaluate_tier(self, tier): - res = super().evaluate_tier(tier) - if tier.definition_type == "formula": - return self.evaluate_formula_tier(tier) - if tier.definition_type == "domain_formula": - return res and self.evaluate_formula_tier(tier) - return res diff --git a/base_tier_validation_formula/pyproject.toml b/base_tier_validation_formula/pyproject.toml deleted file mode 100644 index 4231d0ccc..000000000 --- a/base_tier_validation_formula/pyproject.toml +++ /dev/null @@ -1,3 +0,0 @@ -[build-system] -requires = ["whool"] -build-backend = "whool.buildapi" diff --git a/base_tier_validation_formula/readme/CONTRIBUTORS.md b/base_tier_validation_formula/readme/CONTRIBUTORS.md deleted file mode 100644 index db5ca82c1..000000000 --- a/base_tier_validation_formula/readme/CONTRIBUTORS.md +++ /dev/null @@ -1,12 +0,0 @@ -- Enric Tobella \<\> - -- Adrià Gil Sorribes \<\> - -- Pedro Gonzalez \<\> - -- Pimolnat Suntian \<\> - -- [Trobz](https://trobz.com): - - > - Hoang Diep \<\> - > - Son Ho \<\> \ No newline at end of file diff --git a/base_tier_validation_formula/readme/CREDITS.md b/base_tier_validation_formula/readme/CREDITS.md deleted file mode 100644 index e8c91c6a2..000000000 --- a/base_tier_validation_formula/readme/CREDITS.md +++ /dev/null @@ -1,2 +0,0 @@ -The migration of this module from 15.0 to 16.0 was financially supported -by Camptocamp \ No newline at end of file diff --git a/base_tier_validation_formula/readme/DESCRIPTION.md b/base_tier_validation_formula/readme/DESCRIPTION.md deleted file mode 100644 index a686be4e4..000000000 --- a/base_tier_validation_formula/readme/DESCRIPTION.md +++ /dev/null @@ -1,2 +0,0 @@ -This module includes the ability to define the tier definition domain -and the tier reviewers using python code. \ No newline at end of file diff --git a/base_tier_validation_formula/readme/USAGE.md b/base_tier_validation_formula/readme/USAGE.md deleted file mode 100644 index bb2691e6c..000000000 --- a/base_tier_validation_formula/readme/USAGE.md +++ /dev/null @@ -1,6 +0,0 @@ -To define the domain, \* By python code choose the **Formula** option in -the Definition field. \* By both domain and python code, choose the -**Domain & Formula** option in the Definition field. - -To define the reviewers by python code choose **Python Expression** -option in the Validated by field. \ No newline at end of file diff --git a/base_tier_validation_formula/static/description/icon.png b/base_tier_validation_formula/static/description/icon.png deleted file mode 100644 index 3a0328b51..000000000 Binary files a/base_tier_validation_formula/static/description/icon.png and /dev/null differ diff --git a/base_tier_validation_formula/static/description/index.html b/base_tier_validation_formula/static/description/index.html deleted file mode 100644 index 6fa8602a2..000000000 --- a/base_tier_validation_formula/static/description/index.html +++ /dev/null @@ -1,460 +0,0 @@ - - - - - -README.rst - - - -
- - - -Odoo Community Association - -
-

Base Tier Validation Formula

- -

Mature License: AGPL-3 OCA/tier-validation Translate me on Weblate Try me on Runboat

-

This module includes the ability to define the tier definition domain -and the tier reviewers using python code.

-

Table of contents

- -
-

Usage

-

To define the domain, * By python code choose the Formula option in -the Definition field. * By both domain and python code, choose the -Domain & Formula option in the Definition field.

-

To define the reviewers by python code choose Python Expression -option in the Validated by field.

-
-
-

Bug Tracker

-

Bugs are tracked on GitHub 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.

-

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

-
-
-

Credits

-
-

Authors

-
    -
  • Creu Blanca
  • -
-
-
-

Contributors

- -
-
-

Other credits

-

The migration of this module from 15.0 to 16.0 was financially supported -by Camptocamp

-
-
-

Maintainers

-

This module is maintained by the OCA.

- -Odoo Community Association - -

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/tier-validation project on GitHub.

-

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

-
-
-
-
- - diff --git a/base_tier_validation_formula/tests/__init__.py b/base_tier_validation_formula/tests/__init__.py deleted file mode 100644 index f39596410..000000000 --- a/base_tier_validation_formula/tests/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from . import test_tier_validation diff --git a/base_tier_validation_formula/tests/test_tier_validation.py b/base_tier_validation_formula/tests/test_tier_validation.py deleted file mode 100644 index 78397d913..000000000 --- a/base_tier_validation_formula/tests/test_tier_validation.py +++ /dev/null @@ -1,121 +0,0 @@ -# Copyright 2018 ForgeFlow S.L. -# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html). - -from odoo.exceptions import UserError -from odoo.fields import Domain -from odoo.tests.common import tagged - -from odoo.addons.base_tier_validation.tests.common import CommonTierValidation - - -@tagged("post_install", "-at_install") -class TierTierValidation(CommonTierValidation): - def _setup_tier_definitions(self): - self.tier_def_obj.create( - { - "model_id": self.tester_model.id, - "review_type": "individual", - "reviewer_id": self.test_user_1.id, - "definition_domain": "[('test_field', '>', 1.0)]", - } - ) - - def test_01_reviewer_from_python_expression(self): - tier_definition = self.tier_def_obj.create( - { - "model_id": self.tester_model.id, - "review_type": "individual", - "reviewer_id": self.test_user_1.id, - "definition_type": "formula", - "python_code": "rec.test_field > 1.0", - } - ) - tier_definition.write( - { - "model_id": self.tester_model.id, - "review_type": "expression", - "python_code": "rec.test_field > 3.0", - } - ) - tier_definition.onchange_review_type() - tier_definition.write({"reviewer_expression": "rec.user_id"}) - self.test_record.write({"test_field": 3.5, "user_id": self.test_user_2.id}) - reviews = self.test_record.with_user( - self.test_user_3_multi_company.id - ).request_validation() - self.assertTrue(reviews) - self.assertEqual(len(reviews), 2) - record = self.test_record.with_user(self.test_user_1.id) - self.test_record.invalidate_recordset() - record.invalidate_recordset() - self.assertIn(self.test_user_1, record.reviewer_ids) - self.assertIn(self.test_user_2, record.reviewer_ids) - res = self.test_model.search(Domain("reviewer_ids", "in", self.test_user_2.id)) - self.assertTrue(res) - - def test_02_wrong_reviewer_expression(self): - """Error should raise with incorrect python expresions on - tier definitions.""" - self.tier_def_obj.create( - { - "model_id": self.tester_model.id, - "review_type": "expression", - "reviewer_expression": "rec.test_field", - "python_code": "rec.test_field > 1.0", - } - ) - with self.assertRaises(UserError): - self.test_record.with_user( - self.test_user_3_multi_company - ).request_validation() - self.test_record.review_ids.invalidate_recordset() - self.test_record.review_ids._compute_python_reviewer_ids() - - def test_03_evaluate_wrong_reviewer_expression(self): - self.tier_def_obj.create( - { - "model_id": self.tester_model.id, - "review_type": "expression", - "reviewer_expression": "raise Exception", - "python_code": "rec.test_field > 1.0", - } - ) - with self.assertRaises(UserError): - self.test_record.with_user( - self.test_user_3_multi_company - ).request_validation() - self.test_record.review_ids.invalidate_recordset() - self.test_record.review_ids._compute_python_reviewer_ids() - - def test_04_evaluate_wrong_python_formula_expression(self): - test_record = self.test_model.create({"test_field": 2.5}) - # Create tier definitions - self.tier_def_obj.create( - { - "model_id": self.tester_model.id, - "review_type": "expression", - "reviewer_expression": "raise Exception", - "python_code": "raise Exception", - } - ) - # Request validation - with self.assertRaises(UserError): - review = test_record.with_user(self.test_user_2).request_validation() - self.test_record.evaluate_formula_tier(review) - - def test_05_definition_from_domain_formula(self): - self.tier_def_obj.create( - { - "model_id": self.tester_model.id, - "review_type": "individual", - "reviewer_id": self.test_user_1.id, - "definition_type": "domain_formula", - "definition_domain": '[("test_field", "<", 5.0)]', - "python_code": "rec.test_field > 1.0", - } - ) - self.test_record.write({"test_field": 3.5, "user_id": self.test_user_2.id}) - reviews = self.test_record.with_user( - self.test_user_3_multi_company.id - ).request_validation() - self.assertTrue(reviews) diff --git a/base_tier_validation_formula/views/tier_definition_view.xml b/base_tier_validation_formula/views/tier_definition_view.xml deleted file mode 100644 index 3e92ae5ca..000000000 --- a/base_tier_validation_formula/views/tier_definition_view.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - tier.definition.form - tier.definition - - - - - - - - - definition_type not in ('domain', 'domain_formula') - - - - - - - - - diff --git a/base_tier_validation_forward/README.rst b/base_tier_validation_forward/README.rst deleted file mode 100644 index 4e1c1ea4b..000000000 --- a/base_tier_validation_forward/README.rst +++ /dev/null @@ -1,112 +0,0 @@ -.. 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 Forward -============================ - -.. - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! This file is generated by oca-gen-addon-readme !! - !! changes will be overwritten. !! - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:ec723976c9f69fc061be800d9a8960ee4a54a88e86287b6fa24ad8237ac96301 - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -.. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png - :target: https://odoo-community.org/page/development-status - :alt: Alpha -.. |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%2Ftier--validation-lightgray.png?logo=github - :target: https://github.com/OCA/tier-validation/tree/19.0/base_tier_validation_forward - :alt: OCA/tier-validation -.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/tier-validation-19-0/tier-validation-19-0-base_tier_validation_forward - :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/tier-validation&target_branch=19.0 - :alt: Try me on Runboat - -|badge1| |badge2| |badge3| |badge4| |badge5| - -This module add an advance option to base_tier_validation. - -- To allow "Forward" the tier to different user. - -**Sample use case:** - -A user is appointed to approve a tire, but he/she don't want to make -decision for some reason, and want to pass/forward the decision to -another person. - -User can then click on Forward instead of Approve. A new tier with minor -sequence will be created on the reviewer table, and new user will be -able to make approval decision. - -.. IMPORTANT:: - This is an alpha version, the data model and design can change at any time without warning. - Only for development or testing purpose, do not use in production. - `More details on development status `_ - -**Table of contents** - -.. contents:: - :local: - -Configuration -============= - -In any tier definition, check "Allow Forward" to enable this feature. - -Bug Tracker -=========== - -Bugs are tracked on `GitHub 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 `_. - -Do not contact contributors directly about support or help with technical issues. - -Credits -======= - -Authors -------- - -* Ecosoft - -Contributors ------------- - -- Kitti U. -- Andrea Stirpe -- Saran Lim. - -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-kittiu| image:: https://github.com/kittiu.png?size=40px - :target: https://github.com/kittiu - :alt: kittiu - -Current `maintainer `__: - -|maintainer-kittiu| - -This module is part of the `OCA/tier-validation `_ project on GitHub. - -You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/base_tier_validation_forward/__init__.py b/base_tier_validation_forward/__init__.py deleted file mode 100644 index c0983903a..000000000 --- a/base_tier_validation_forward/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -# Copyright 2020 Ecosoft Co., Ltd. (http://ecosoft.co.th) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -from . import models -from . import wizard -from .hooks import uninstall_hook diff --git a/base_tier_validation_forward/__manifest__.py b/base_tier_validation_forward/__manifest__.py deleted file mode 100644 index d082e6bda..000000000 --- a/base_tier_validation_forward/__manifest__.py +++ /dev/null @@ -1,29 +0,0 @@ -# Copyright 2020 Ecosoft Co., Ltd. (http://ecosoft.co.th) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -{ - "name": "Base Tier Validation Forward", - "summary": "Forward option for base tiers", - "version": "19.0.1.0.0", - "category": "Tools", - "website": "https://github.com/OCA/tier-validation", - "author": "Ecosoft,Odoo Community Association (OCA)", - "license": "AGPL-3", - "depends": ["base_tier_validation"], - "data": [ - "security/ir.model.access.csv", - "data/mail_data.xml", - "views/tier_definition_view.xml", - "wizard/forward_wizard_view.xml", - "templates/tier_validation_templates.xml", - ], - "development_status": "Alpha", - "maintainers": ["kittiu"], - "application": False, - "installable": True, - "assets": { - "web.assets_backend": [ - "base_tier_validation_forward/static/src/xml/tier_review_template.xml", - ], - }, - "uninstall_hook": "uninstall_hook", -} diff --git a/base_tier_validation_forward/data/mail_data.xml b/base_tier_validation_forward/data/mail_data.xml deleted file mode 100644 index 7126beacb..000000000 --- a/base_tier_validation_forward/data/mail_data.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - Tier Validation Forward Notification - - - - - diff --git a/base_tier_validation_forward/hooks.py b/base_tier_validation_forward/hooks.py deleted file mode 100644 index 7768c408f..000000000 --- a/base_tier_validation_forward/hooks.py +++ /dev/null @@ -1,24 +0,0 @@ -# Copyright 2020 Ecosoft Co., Ltd. (http://ecosoft.co.th) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - - -def uninstall_hook(env): - """Revert table tier_review back to original before this module""" - env.cr.execute( - "update tier_review a set sequence = " - "(select floor(sequence) from tier_review b where a.id = b.id);" - ) - env.cr.execute( - "update tier_review a set status = 'approved' where status = 'forwarded';" - ) - - columns_to_drop = [ - "name", - "review_type", - "reviewer_id", - "reviewer_group_id", - "has_comment", - "approve_sequence", - ] - drop_sql = ", ".join([f"DROP COLUMN {col} CASCADE" for col in columns_to_drop]) - env.cr.execute(f"ALTER TABLE tier_review {drop_sql};") diff --git a/base_tier_validation_forward/i18n/base_tier_validation_forward.pot b/base_tier_validation_forward/i18n/base_tier_validation_forward.pot deleted file mode 100644 index b5138bacb..000000000 --- a/base_tier_validation_forward/i18n/base_tier_validation_forward.pot +++ /dev/null @@ -1,204 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * base_tier_validation_forward -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 19.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_tier_validation_forward -#. odoo-python -#: code:addons/base_tier_validation_forward/wizard/forward_wizard.py:0 -msgid ">> %(reviewer)s" -msgstr "" - -#. module: base_tier_validation_forward -#. odoo-python -#: code:addons/base_tier_validation_forward/models/tier_validation.py:0 -msgid "A review was forwarded by %(user_name)s." -msgstr "" - -#. module: base_tier_validation_forward -#. odoo-python -#: code:addons/base_tier_validation_forward/models/tier_validation.py:0 -msgid "A review was forwarded from %(user_name)s %(comment)s" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__has_comment -msgid "Allow Comment" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_definition__has_forward -msgid "Allow Forward" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,help:base_tier_validation_forward.field_tier_definition__has_forward -msgid "Allow option to 'Forward' to different person." -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,help:base_tier_validation_forward.field_tier_review__approve_sequence -msgid "Approval order by the specified sequence number" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__approve_sequence -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__approve_sequence -msgid "Approve by sequence" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation__can_forward -msgid "Can Forward" -msgstr "" - -#. module: base_tier_validation_forward -#: model_terms:ir.ui.view,arch_db:base_tier_validation_forward.view_forward_wizard -msgid "Cancel" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__has_comment -msgid "Comment" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model,name:base_tier_validation_forward.model_comment_wizard -msgid "Comment Wizard" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__create_uid -msgid "Created by" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__create_date -msgid "Created on" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_comment_wizard__display_name -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_definition__display_name -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__display_name -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation__display_name -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__display_name -msgid "Display Name" -msgstr "" - -#. module: base_tier_validation_forward -#. odoo-python -#: code:addons/base_tier_validation_forward/models/tier_validation.py:0 -#: model_terms:ir.ui.view,arch_db:base_tier_validation_forward.tier_validation_label_forward -#: model_terms:ir.ui.view,arch_db:base_tier_validation_forward.view_forward_wizard -msgid "Forward" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__forward_description -msgid "Forward Description" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model,name:base_tier_validation_forward.model_tier_validation_forward_wizard -msgid "Forward Wizard" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields.selection,name:base_tier_validation_forward.selection__tier_review__status__forwarded -msgid "Forwarded" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_comment_wizard__id -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_definition__id -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__id -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation__id -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__id -msgid "ID" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__write_uid -msgid "Last Updated by" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__write_date -msgid "Last Updated on" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__name -msgid "Name" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__forward_reviewer_id -msgid "Next Reviewer" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__res_id -msgid "Res" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__res_model -msgid "Res Model" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__reviewer_id -msgid "Reviewer" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__reviewer_group_id -msgid "Reviewer group" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__status -msgid "Status" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__sequence -msgid "Tier" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model,name:base_tier_validation_forward.model_tier_definition -msgid "Tier Definition" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model,name:base_tier_validation_forward.model_tier_review -msgid "Tier Review" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model,name:base_tier_validation_forward.model_tier_validation -msgid "Tier Validation (abstract)" -msgstr "" - -#. module: base_tier_validation_forward -#: model:mail.message.subtype,name:base_tier_validation_forward.mt_tier_validation_forwarded -msgid "Tier Validation Forward Notification" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__review_type -msgid "Validated by" -msgstr "" diff --git a/base_tier_validation_forward/i18n/es.po b/base_tier_validation_forward/i18n/es.po deleted file mode 100644 index c46376dd2..000000000 --- a/base_tier_validation_forward/i18n/es.po +++ /dev/null @@ -1,207 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * base_tier_validation_forward -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-08-27 16:07+0000\n" -"Last-Translator: Ivorra78 \n" -"Language-Team: none\n" -"Language: es\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.17\n" - -#. module: base_tier_validation_forward -#. odoo-python -#: code:addons/base_tier_validation_forward/models/tier_validation.py:0 -#, python-format -msgid "A review was forwarded by %s." -msgstr "%s ha enviado una reseña." - -#. module: base_tier_validation_forward -#. odoo-python -#: code:addons/base_tier_validation_forward/models/tier_validation.py:0 -#, python-format -msgid "A review was forwarded from %(user_name)s %(comment)s" -msgstr "Se envió una reseña desde %(user_name)s %(comment)s" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__has_comment -msgid "Allow Comment" -msgstr "Permitir comentario" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_definition__has_forward -msgid "Allow Forward" -msgstr "Permitir reenviar" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,help:base_tier_validation_forward.field_tier_definition__has_forward -msgid "Allow option to 'Forward' to different person." -msgstr "Permitir la opción de 'Reenviar' a otra persona." - -#. module: base_tier_validation_forward -#: model:ir.model.fields,help:base_tier_validation_forward.field_tier_review__approve_sequence -msgid "Approval order by the specified sequence number" -msgstr "Orden de aprobación por el número de secuencia especificado" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__approve_sequence -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__approve_sequence -msgid "Approve by sequence" -msgstr "Aprobar por secuencia" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation__can_forward -msgid "Can Forward" -msgstr "Puede Reenviar" - -#. module: base_tier_validation_forward -#: model_terms:ir.ui.view,arch_db:base_tier_validation_forward.view_forward_wizard -msgid "Cancel" -msgstr "Cancelar" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__has_comment -msgid "Comment" -msgstr "Comentario" - -#. module: base_tier_validation_forward -#: model:ir.model,name:base_tier_validation_forward.model_comment_wizard -msgid "Comment Wizard" -msgstr "Asistente de comentarios" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__create_uid -msgid "Created by" -msgstr "Creado por" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__create_date -msgid "Created on" -msgstr "Creado el" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__name -msgid "Description" -msgstr "Descripción" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__display_name -msgid "Display Name" -msgstr "Mostrar Nombre" - -#. module: base_tier_validation_forward -#. odoo-python -#: code:addons/base_tier_validation_forward/models/tier_validation.py:0 -#: model_terms:ir.ui.view,arch_db:base_tier_validation_forward.tier_validation_label_forward -#: model_terms:ir.ui.view,arch_db:base_tier_validation_forward.view_forward_wizard -#, python-format -msgid "Forward" -msgstr "Avanzar" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__forward_description -msgid "Forward Description" -msgstr "Descripción directa" - -#. module: base_tier_validation_forward -#: model:ir.model,name:base_tier_validation_forward.model_tier_validation_forward_wizard -msgid "Forward Wizard" -msgstr "Asistente de avance" - -#. module: base_tier_validation_forward -#: model:ir.model.fields.selection,name:base_tier_validation_forward.selection__tier_review__status__forwarded -msgid "Forwarded" -msgstr "Reenviado" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__id -msgid "ID" -msgstr "ID (identificación)" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,help:base_tier_validation_forward.field_tier_review__has_comment -msgid "If set, Allow the reviewer to leave a comment on the review." -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__write_uid -msgid "Last Updated by" -msgstr "Última actualización por" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__write_date -msgid "Last Updated on" -msgstr "Última Actualización el" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__forward_reviewer_id -msgid "Next Reviewer" -msgstr "Siguiente revisor" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__res_id -msgid "Res" -msgstr "Recurso" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__res_model -msgid "Res Model" -msgstr "Modelo Res" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__reviewer_id -msgid "Reviewer" -msgstr "Revisor" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__reviewer_group_id -msgid "Reviewer group" -msgstr "Grupo revisor" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__status -msgid "Status" -msgstr "Estados" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__sequence -msgid "Tier" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model,name:base_tier_validation_forward.model_tier_definition -msgid "Tier Definition" -msgstr "Definición del nivel" - -#. module: base_tier_validation_forward -#: model:ir.model,name:base_tier_validation_forward.model_tier_review -msgid "Tier Review" -msgstr "Definición de nivel" - -#. module: base_tier_validation_forward -#: model:ir.model,name:base_tier_validation_forward.model_tier_validation -msgid "Tier Validation (abstract)" -msgstr "Validaciones de Nivel (abstracto)" - -#. module: base_tier_validation_forward -#: model:mail.message.subtype,name:base_tier_validation_forward.mt_tier_validation_forwarded -msgid "Tier Validation Forward Notification" -msgstr "Validación de nivel Notificación previa" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__review_type -msgid "Validated by" -msgstr "Validado por" - -#~ msgid "Last Modified on" -#~ msgstr "Última Modificación el" - -#~ msgid "Sequence" -#~ msgstr "Secuencia" diff --git a/base_tier_validation_forward/i18n/fr.po b/base_tier_validation_forward/i18n/fr.po deleted file mode 100644 index 9b28948b8..000000000 --- a/base_tier_validation_forward/i18n/fr.po +++ /dev/null @@ -1,208 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * base_tier_validation_forward -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 19.0\n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-06-16 14:24+0000\n" -"Last-Translator: Vincent Hatakeyama \n" -"Language-Team: none\n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 5.15.2\n" - -#. module: base_tier_validation_forward -#. odoo-python -#: code:addons/base_tier_validation_forward/wizard/forward_wizard.py:0 -#, fuzzy -msgid ">> %(reviewer)s" -msgstr ">> %(reviewer)s" - -#. module: base_tier_validation_forward -#. odoo-python -#: code:addons/base_tier_validation_forward/models/tier_validation.py:0 -msgid "A review was forwarded by %(user_name)s." -msgstr "Une revue a été transféré par %(user_name)s." - -#. module: base_tier_validation_forward -#. odoo-python -#: code:addons/base_tier_validation_forward/models/tier_validation.py:0 -msgid "A review was forwarded from %(user_name)s %(comment)s" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__has_comment -msgid "Allow Comment" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_definition__has_forward -msgid "Allow Forward" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,help:base_tier_validation_forward.field_tier_definition__has_forward -msgid "Allow option to 'Forward' to different person." -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,help:base_tier_validation_forward.field_tier_review__approve_sequence -msgid "Approval order by the specified sequence number" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__approve_sequence -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__approve_sequence -msgid "Approve by sequence" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation__can_forward -msgid "Can Forward" -msgstr "" - -#. module: base_tier_validation_forward -#: model_terms:ir.ui.view,arch_db:base_tier_validation_forward.view_forward_wizard -msgid "Cancel" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__has_comment -msgid "Comment" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model,name:base_tier_validation_forward.model_comment_wizard -msgid "Comment Wizard" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__create_uid -msgid "Created by" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__create_date -msgid "Created on" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_comment_wizard__display_name -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_definition__display_name -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__display_name -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation__display_name -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__display_name -msgid "Display Name" -msgstr "" - -#. module: base_tier_validation_forward -#. odoo-python -#: code:addons/base_tier_validation_forward/models/tier_validation.py:0 -#: model_terms:ir.ui.view,arch_db:base_tier_validation_forward.tier_validation_label_forward -#: model_terms:ir.ui.view,arch_db:base_tier_validation_forward.view_forward_wizard -msgid "Forward" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__forward_description -msgid "Forward Description" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model,name:base_tier_validation_forward.model_tier_validation_forward_wizard -msgid "Forward Wizard" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields.selection,name:base_tier_validation_forward.selection__tier_review__status__forwarded -msgid "Forwarded" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_comment_wizard__id -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_definition__id -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__id -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation__id -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__id -msgid "ID" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__write_uid -msgid "Last Updated by" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__write_date -msgid "Last Updated on" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__name -msgid "Name" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__forward_reviewer_id -msgid "Next Reviewer" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__res_id -msgid "Res" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__res_model -msgid "Res Model" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__reviewer_id -msgid "Reviewer" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__reviewer_group_id -msgid "Reviewer group" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__status -msgid "Status" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__sequence -msgid "Tier" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model,name:base_tier_validation_forward.model_tier_definition -msgid "Tier Definition" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model,name:base_tier_validation_forward.model_tier_review -msgid "Tier Review" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model,name:base_tier_validation_forward.model_tier_validation -msgid "Tier Validation (abstract)" -msgstr "" - -#. module: base_tier_validation_forward -#: model:mail.message.subtype,name:base_tier_validation_forward.mt_tier_validation_forwarded -msgid "Tier Validation Forward Notification" -msgstr "" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__review_type -msgid "Validated by" -msgstr "" diff --git a/base_tier_validation_forward/i18n/it.po b/base_tier_validation_forward/i18n/it.po deleted file mode 100644 index 4fa7dcfbc..000000000 --- a/base_tier_validation_forward/i18n/it.po +++ /dev/null @@ -1,208 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * base_tier_validation_forward -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 16.0\n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2025-01-20 16:06+0000\n" -"Last-Translator: mymage \n" -"Language-Team: none\n" -"Language: it\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.6.2\n" - -#. module: base_tier_validation_forward -#. odoo-python -#: code:addons/base_tier_validation_forward/models/tier_validation.py:0 -#, python-format -msgid "A review was forwarded by %s." -msgstr "Una revisione è stata inoltrata da %s." - -#. module: base_tier_validation_forward -#. odoo-python -#: code:addons/base_tier_validation_forward/models/tier_validation.py:0 -#, python-format -msgid "A review was forwarded from %(user_name)s %(comment)s" -msgstr "Una revisione è stata inoltrata da %(user_name)s %(comment)s" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__has_comment -msgid "Allow Comment" -msgstr "Consenti commenti" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_definition__has_forward -msgid "Allow Forward" -msgstr "Consenti inoltro" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,help:base_tier_validation_forward.field_tier_definition__has_forward -msgid "Allow option to 'Forward' to different person." -msgstr "Consente l'opzione di 'Inoltro' ad una persona differente." - -#. module: base_tier_validation_forward -#: model:ir.model.fields,help:base_tier_validation_forward.field_tier_review__approve_sequence -msgid "Approval order by the specified sequence number" -msgstr "Ordine di approvazione specificato da numero sequenza" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__approve_sequence -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__approve_sequence -msgid "Approve by sequence" -msgstr "Approva in sequenza" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation__can_forward -msgid "Can Forward" -msgstr "Può inoltrare" - -#. module: base_tier_validation_forward -#: model_terms:ir.ui.view,arch_db:base_tier_validation_forward.view_forward_wizard -msgid "Cancel" -msgstr "Annulla" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__has_comment -msgid "Comment" -msgstr "Commento" - -#. module: base_tier_validation_forward -#: model:ir.model,name:base_tier_validation_forward.model_comment_wizard -msgid "Comment Wizard" -msgstr "Procedura guidata commento" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__create_uid -msgid "Created by" -msgstr "Creato da" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__create_date -msgid "Created on" -msgstr "Creato il" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__name -msgid "Description" -msgstr "Descrizione" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__display_name -msgid "Display Name" -msgstr "Nome visualizzato" - -#. module: base_tier_validation_forward -#. odoo-python -#: code:addons/base_tier_validation_forward/models/tier_validation.py:0 -#: model_terms:ir.ui.view,arch_db:base_tier_validation_forward.tier_validation_label_forward -#: model_terms:ir.ui.view,arch_db:base_tier_validation_forward.view_forward_wizard -#, python-format -msgid "Forward" -msgstr "Inoltra" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__forward_description -msgid "Forward Description" -msgstr "Descrizione inoltro" - -#. module: base_tier_validation_forward -#: model:ir.model,name:base_tier_validation_forward.model_tier_validation_forward_wizard -msgid "Forward Wizard" -msgstr "Procedura guidata Inoltro" - -#. module: base_tier_validation_forward -#: model:ir.model.fields.selection,name:base_tier_validation_forward.selection__tier_review__status__forwarded -msgid "Forwarded" -msgstr "Inoltrata" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__id -msgid "ID" -msgstr "ID" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,help:base_tier_validation_forward.field_tier_review__has_comment -msgid "If set, Allow the reviewer to leave a comment on the review." -msgstr "" -"Se attivata, consente al revisore di lasciare un commento nella revisione." - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__write_uid -msgid "Last Updated by" -msgstr "Ultimo aggiornamento di" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__write_date -msgid "Last Updated on" -msgstr "Ultimo aggiornamento il" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__forward_reviewer_id -msgid "Next Reviewer" -msgstr "Prossimo revisore" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__res_id -msgid "Res" -msgstr "Res" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__res_model -msgid "Res Model" -msgstr "Modello res" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__reviewer_id -msgid "Reviewer" -msgstr "Revisore" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__reviewer_group_id -msgid "Reviewer group" -msgstr "Gruppo revisore" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__status -msgid "Status" -msgstr "Stato" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__sequence -msgid "Tier" -msgstr "Livello" - -#. module: base_tier_validation_forward -#: model:ir.model,name:base_tier_validation_forward.model_tier_definition -msgid "Tier Definition" -msgstr "Definizione livello" - -#. module: base_tier_validation_forward -#: model:ir.model,name:base_tier_validation_forward.model_tier_review -msgid "Tier Review" -msgstr "Revisione livello" - -#. module: base_tier_validation_forward -#: model:ir.model,name:base_tier_validation_forward.model_tier_validation -msgid "Tier Validation (abstract)" -msgstr "Validazione livello (sintesi)" - -#. module: base_tier_validation_forward -#: model:mail.message.subtype,name:base_tier_validation_forward.mt_tier_validation_forwarded -msgid "Tier Validation Forward Notification" -msgstr "Notifica inoltro validazione livello" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__review_type -msgid "Validated by" -msgstr "Validato da" - -#~ msgid "Last Modified on" -#~ msgstr "Ultima modifica il" - -#~ msgid "Sequence" -#~ msgstr "Sequenza" diff --git a/base_tier_validation_forward/i18n/nl.po b/base_tier_validation_forward/i18n/nl.po deleted file mode 100644 index 98512f168..000000000 --- a/base_tier_validation_forward/i18n/nl.po +++ /dev/null @@ -1,199 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * base_tier_validation_forward -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 18.0\n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-05-13 19:59+0000\n" -"Last-Translator: Bosd \n" -"Language-Team: none\n" -"Language: nl\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.15.2\n" - -#. module: base_tier_validation_forward -#. odoo-python -#: code:addons/base_tier_validation_forward/wizard/forward_wizard.py:0 -msgid ">> %(reviewer)s" -msgstr ">> %(reviewer)s" - -#. module: base_tier_validation_forward -#. odoo-python -#: code:addons/base_tier_validation_forward/models/tier_validation.py:0 -msgid "A review was forwarded by %(user_name)s." -msgstr "Een beoordeling is doorgestuurd door %(user_name)s." - -#. module: base_tier_validation_forward -#. odoo-python -#: code:addons/base_tier_validation_forward/models/tier_validation.py:0 -msgid "A review was forwarded from %(user_name)s %(comment)s" -msgstr "Een beoordeling is doorgestuurd door %(user_name)s %(comment)s" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__has_comment -msgid "Allow Comment" -msgstr "Opmerking toestaan" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_definition__has_forward -msgid "Allow Forward" -msgstr "Doorsturen toestaan" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,help:base_tier_validation_forward.field_tier_definition__has_forward -msgid "Allow option to 'Forward' to different person." -msgstr "Sta de optie toe om door te sturen naar een ander persoon." - -#. module: base_tier_validation_forward -#: model:ir.model.fields,help:base_tier_validation_forward.field_tier_review__approve_sequence -msgid "Approval order by the specified sequence number" -msgstr "Goedkeuringsvolgorde op basis van het opgegeven volgnummer" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__approve_sequence -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__approve_sequence -msgid "Approve by sequence" -msgstr "Goedkeuren via volgorde" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation__can_forward -msgid "Can Forward" -msgstr "Kan doorsturen" - -#. module: base_tier_validation_forward -#: model_terms:ir.ui.view,arch_db:base_tier_validation_forward.view_forward_wizard -msgid "Cancel" -msgstr "Annuleren" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__has_comment -msgid "Comment" -msgstr "Opmerking" - -#. module: base_tier_validation_forward -#: model:ir.model,name:base_tier_validation_forward.model_comment_wizard -msgid "Comment Wizard" -msgstr "Opmerkingen-wizard" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__create_uid -msgid "Created by" -msgstr "Aangemaakt door" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__create_date -msgid "Created on" -msgstr "Aangemaakt op" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__display_name -msgid "Display Name" -msgstr "Schermnaam" - -#. module: base_tier_validation_forward -#. odoo-python -#: code:addons/base_tier_validation_forward/models/tier_validation.py:0 -#: model_terms:ir.ui.view,arch_db:base_tier_validation_forward.tier_validation_label_forward -#: model_terms:ir.ui.view,arch_db:base_tier_validation_forward.view_forward_wizard -msgid "Forward" -msgstr "Doorsturen" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__forward_description -msgid "Forward Description" -msgstr "Omschrijving doorsturen" - -#. module: base_tier_validation_forward -#: model:ir.model,name:base_tier_validation_forward.model_tier_validation_forward_wizard -msgid "Forward Wizard" -msgstr "Wizard doorsturen" - -#. module: base_tier_validation_forward -#: model:ir.model.fields.selection,name:base_tier_validation_forward.selection__tier_review__status__forwarded -msgid "Forwarded" -msgstr "Doorgestuurd" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__id -msgid "ID" -msgstr "ID" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__write_uid -msgid "Last Updated by" -msgstr "Laatst bijgewerkt door" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__write_date -msgid "Last Updated on" -msgstr "Laatst bijgewerkt op" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__name -msgid "Name" -msgstr "Naam" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__forward_reviewer_id -msgid "Next Reviewer" -msgstr "Volgende beoordelaar" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__res_id -msgid "Res" -msgstr "Res" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__res_model -msgid "Res Model" -msgstr "Res-model" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__reviewer_id -msgid "Reviewer" -msgstr "Beoordelaar" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__reviewer_group_id -msgid "Reviewer group" -msgstr "Groep voor beoordelaars" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__status -msgid "Status" -msgstr "Status" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__sequence -msgid "Tier" -msgstr "Niveau" - -#. module: base_tier_validation_forward -#: model:ir.model,name:base_tier_validation_forward.model_tier_definition -msgid "Tier Definition" -msgstr "Niveaudefinitie" - -#. module: base_tier_validation_forward -#: model:ir.model,name:base_tier_validation_forward.model_tier_review -msgid "Tier Review" -msgstr "Niveaubeoordeling" - -#. module: base_tier_validation_forward -#: model:ir.model,name:base_tier_validation_forward.model_tier_validation -msgid "Tier Validation (abstract)" -msgstr "Niveauvalidatie (abstract)" - -#. module: base_tier_validation_forward -#: model:mail.message.subtype,name:base_tier_validation_forward.mt_tier_validation_forwarded -msgid "Tier Validation Forward Notification" -msgstr "Notificatie: doorsturen niveauvalidatie" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__review_type -msgid "Validated by" -msgstr "Gevalideerd door" diff --git a/base_tier_validation_forward/i18n/nl_NL.po b/base_tier_validation_forward/i18n/nl_NL.po deleted file mode 100644 index 164bf1da0..000000000 --- a/base_tier_validation_forward/i18n/nl_NL.po +++ /dev/null @@ -1,199 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * base_tier_validation_forward -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 18.0\n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2025-05-09 00:23+0000\n" -"Last-Translator: Bosd \n" -"Language-Team: none\n" -"Language: nl_NL\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.10.4\n" - -#. module: base_tier_validation_forward -#. odoo-python -#: code:addons/base_tier_validation_forward/wizard/forward_wizard.py:0 -msgid ">> %(reviewer)s" -msgstr ">> %(reviewer)s" - -#. module: base_tier_validation_forward -#. odoo-python -#: code:addons/base_tier_validation_forward/models/tier_validation.py:0 -msgid "A review was forwarded by %(user_name)s." -msgstr "Een beoordeling is doorgestuurd door %(user_name)s." - -#. module: base_tier_validation_forward -#. odoo-python -#: code:addons/base_tier_validation_forward/models/tier_validation.py:0 -msgid "A review was forwarded from %(user_name)s %(comment)s" -msgstr "Een beoordeling is doorgestuurd van %(user_name)s %(comment)s" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__has_comment -msgid "Allow Comment" -msgstr "Opmerking toestaan" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_definition__has_forward -msgid "Allow Forward" -msgstr "Doorsturen toestaan" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,help:base_tier_validation_forward.field_tier_definition__has_forward -msgid "Allow option to 'Forward' to different person." -msgstr "Optie 'Doorsturen' naar andere persoon toestaan." - -#. module: base_tier_validation_forward -#: model:ir.model.fields,help:base_tier_validation_forward.field_tier_review__approve_sequence -msgid "Approval order by the specified sequence number" -msgstr "Goedkeuringsvolgorde volgens het opgegeven volgnummer" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__approve_sequence -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__approve_sequence -msgid "Approve by sequence" -msgstr "Goedkeuren op volgorde" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation__can_forward -msgid "Can Forward" -msgstr "Kan doorsturen" - -#. module: base_tier_validation_forward -#: model_terms:ir.ui.view,arch_db:base_tier_validation_forward.view_forward_wizard -msgid "Cancel" -msgstr "Annuleren" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__has_comment -msgid "Comment" -msgstr "Opmerking" - -#. module: base_tier_validation_forward -#: model:ir.model,name:base_tier_validation_forward.model_comment_wizard -msgid "Comment Wizard" -msgstr "Opmerkingwizard" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__create_uid -msgid "Created by" -msgstr "Aangemaakt door" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__create_date -msgid "Created on" -msgstr "Aangemaakt op" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__display_name -msgid "Display Name" -msgstr "Weergavenaam" - -#. module: base_tier_validation_forward -#. odoo-python -#: code:addons/base_tier_validation_forward/models/tier_validation.py:0 -#: model_terms:ir.ui.view,arch_db:base_tier_validation_forward.tier_validation_label_forward -#: model_terms:ir.ui.view,arch_db:base_tier_validation_forward.view_forward_wizard -msgid "Forward" -msgstr "Doorsturen" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__forward_description -msgid "Forward Description" -msgstr "Doorgestuurde beschrijving" - -#. module: base_tier_validation_forward -#: model:ir.model,name:base_tier_validation_forward.model_tier_validation_forward_wizard -msgid "Forward Wizard" -msgstr "Doorstuurwizard" - -#. module: base_tier_validation_forward -#: model:ir.model.fields.selection,name:base_tier_validation_forward.selection__tier_review__status__forwarded -msgid "Forwarded" -msgstr "Doorgestuurd" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__id -msgid "ID" -msgstr "ID" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__write_uid -msgid "Last Updated by" -msgstr "Laatst bijgewerkt door" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__write_date -msgid "Last Updated on" -msgstr "Laatst bijgewerkt op" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__name -msgid "Name" -msgstr "Naam" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__forward_reviewer_id -msgid "Next Reviewer" -msgstr "Volgende beoordelaar" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__res_id -msgid "Res" -msgstr "Res" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__res_model -msgid "Res Model" -msgstr "Res Model" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__reviewer_id -msgid "Reviewer" -msgstr "Beoordelaar" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__reviewer_group_id -msgid "Reviewer group" -msgstr "Beoordelaarsgroep" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__status -msgid "Status" -msgstr "Status" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__sequence -msgid "Tier" -msgstr "Niveau" - -#. module: base_tier_validation_forward -#: model:ir.model,name:base_tier_validation_forward.model_tier_definition -msgid "Tier Definition" -msgstr "Niveaudefinitie" - -#. module: base_tier_validation_forward -#: model:ir.model,name:base_tier_validation_forward.model_tier_review -msgid "Tier Review" -msgstr "Niveaubeoordeling" - -#. module: base_tier_validation_forward -#: model:ir.model,name:base_tier_validation_forward.model_tier_validation -msgid "Tier Validation (abstract)" -msgstr "Niveauvalidatie (abstract)" - -#. module: base_tier_validation_forward -#: model:mail.message.subtype,name:base_tier_validation_forward.mt_tier_validation_forwarded -msgid "Tier Validation Forward Notification" -msgstr "Notificatie niveauvalidatie doorgestuurd" - -#. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__review_type -msgid "Validated by" -msgstr "Gevalideerd door" diff --git a/base_tier_validation_forward/models/__init__.py b/base_tier_validation_forward/models/__init__.py deleted file mode 100644 index 2176cc748..000000000 --- a/base_tier_validation_forward/models/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -# Copyright 2020 Ecosoft Co., Ltd. (http://ecosoft.co.th) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -from . import tier_definition -from . import tier_review -from . import tier_validation diff --git a/base_tier_validation_forward/models/tier_definition.py b/base_tier_validation_forward/models/tier_definition.py deleted file mode 100644 index 941f7817e..000000000 --- a/base_tier_validation_forward/models/tier_definition.py +++ /dev/null @@ -1,13 +0,0 @@ -# Copyright 2020 Ecosoft Co., Ltd. (http://ecosoft.co.th) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -from odoo import fields, models - - -class TierDefinition(models.Model): - _inherit = "tier.definition" - - has_forward = fields.Boolean( - string="Allow Forward", - default=False, - help="Allow option to 'Forward' to different person.", - ) diff --git a/base_tier_validation_forward/models/tier_review.py b/base_tier_validation_forward/models/tier_review.py deleted file mode 100644 index 2455cfe0a..000000000 --- a/base_tier_validation_forward/models/tier_review.py +++ /dev/null @@ -1,59 +0,0 @@ -# Copyright 2020 Ecosoft Co., Ltd. (http://ecosoft.co.th) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -from odoo import api, fields, models - - -class TierReview(models.Model): - _inherit = "tier.review" - - # NOTE: Added translate=True because in the compute method we assign: - # rec.name = rec.definition_id.name - # And the field `name` in `tier.definition` is translated (translate=True), - # so we must match this behavior. - # Reference: https://github.com/OCA/server-ux/pull/1065#discussion_r2058502638 - name = fields.Char( - compute="_compute_definition_data", store=True, related=False, translate=True - ) - status = fields.Selection( - selection_add=[("forwarded", "Forwarded")], - ) - review_type = fields.Selection( - compute="_compute_definition_data", - store=True, - ) - reviewer_id = fields.Many2one( - comodel_name="res.users", - compute="_compute_definition_data", - store=True, - ) - reviewer_group_id = fields.Many2one( - comodel_name="res.groups", - compute="_compute_definition_data", - store=True, - ) - sequence = fields.Integer() - has_comment = fields.Boolean( - compute="_compute_definition_data", - store=True, - ) - approve_sequence = fields.Boolean( - compute="_compute_definition_data", - store=True, - ) - - @api.depends( - "definition_id.name", - "definition_id.review_type", - "definition_id.reviewer_id", - "definition_id.reviewer_group_id", - "definition_id.has_comment", - "definition_id.approve_sequence", - ) - def _compute_definition_data(self): - for rec in self: - rec.name = rec.definition_id.name - rec.review_type = rec.definition_id.review_type - rec.reviewer_id = rec.definition_id.reviewer_id - rec.reviewer_group_id = rec.definition_id.reviewer_group_id - rec.has_comment = rec.definition_id.has_comment - rec.approve_sequence = rec.definition_id.approve_sequence diff --git a/base_tier_validation_forward/models/tier_validation.py b/base_tier_validation_forward/models/tier_validation.py deleted file mode 100644 index 47f2c2e0e..000000000 --- a/base_tier_validation_forward/models/tier_validation.py +++ /dev/null @@ -1,95 +0,0 @@ -# Copyright 2020 Ecosoft Co., Ltd. (http://ecosoft.co.th) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -from odoo import fields, models - - -class TierValidation(models.AbstractModel): - _inherit = "tier.validation" - - can_forward = fields.Boolean(compute="_compute_can_forward") - - def _compute_can_forward(self): - for rec in self: - if not rec.can_review: - rec.can_forward = False - continue - sequences = self._get_sequences_to_approve(self.env.user) - reviews = rec.review_ids.filtered( - lambda review, sequences=sequences: review.sequence in sequences - ) - definitions = reviews.mapped("definition_id") - rec.can_forward = True in definitions.mapped("has_forward") - - def _validated_states(self): - res = super()._validated_states() - res.append("forwarded") - return res - - def _get_forwarded_notification_subtype(self): - return "base_tier_validation.mt_tier_validation_forwarded" - - def forward_tier(self): - self.ensure_one() - sequences = self._get_sequences_to_approve(self.env.user) - reviews = self.review_ids.filtered(lambda r: r.sequence in sequences) - ctx = self._add_comment("forward", reviews)["context"] - comment = ( - self.env["comment.wizard"].with_context(**ctx).create({"comment": "/"}) - ) - wizard = self.env.ref("base_tier_validation_forward.view_forward_wizard") - return { - "name": self.env._("Forward"), - "type": "ir.actions.act_window", - "view_mode": "form", - "res_model": "tier.validation.forward.wizard", - "views": [(wizard.id, "form")], - "view_id": wizard.id, - "target": "new", - "context": { - "default_res_id": self.id, - "default_res_model": self._name, - "comment_id": comment.id, - }, - } - - def _forward_tier(self, tiers=False): - self.ensure_one() - tier_reviews = tiers or self.review_ids - user_reviews = tier_reviews.filtered( - lambda review: review.status != "approved" - and (self.env.user in review.reviewer_ids) - ) - user_reviews.write( - { - "status": "forwarded", - "done_by": self.env.user.id, - "reviewed_date": fields.Datetime.now(), - } - ) - for review in user_reviews: - rec = self.env[review.model].browse(review.res_id) - rec._notify_forwarded_reviews() - - def _notify_forwarded_reviews(self): - post = "message_post" - if hasattr(self, post): - # Notify state change - getattr(self, post)( - subtype_xmlid=self._get_forwarded_notification_subtype(), - body=self._notify_forwarded_reviews_body(), - ) - - def _notify_forwarded_reviews_body(self): - has_comment = self.review_ids.filtered( - lambda review: (self.env.user in review.reviewer_ids) and review.comment - ) - if has_comment: - comment = has_comment.mapped("comment")[0] - return self.env._( - "A review was forwarded from %(user_name)s %(comment)s", - user_name=self.env.user.name, - comment=comment, - ) - return self.env._( - "A review was forwarded by %(user_name)s.", user_name=self.env.user.name - ) diff --git a/base_tier_validation_forward/pyproject.toml b/base_tier_validation_forward/pyproject.toml deleted file mode 100644 index 4231d0ccc..000000000 --- a/base_tier_validation_forward/pyproject.toml +++ /dev/null @@ -1,3 +0,0 @@ -[build-system] -requires = ["whool"] -build-backend = "whool.buildapi" diff --git a/base_tier_validation_forward/readme/CONFIGURE.md b/base_tier_validation_forward/readme/CONFIGURE.md deleted file mode 100644 index 86822e6b4..000000000 --- a/base_tier_validation_forward/readme/CONFIGURE.md +++ /dev/null @@ -1 +0,0 @@ -In any tier definition, check "Allow Forward" to enable this feature. diff --git a/base_tier_validation_forward/readme/CONTRIBUTORS.md b/base_tier_validation_forward/readme/CONTRIBUTORS.md deleted file mode 100644 index a3f45b83e..000000000 --- a/base_tier_validation_forward/readme/CONTRIBUTORS.md +++ /dev/null @@ -1,3 +0,0 @@ -- Kitti U. \<\> -- Andrea Stirpe \<\> -- Saran Lim. \<\> diff --git a/base_tier_validation_forward/readme/DESCRIPTION.md b/base_tier_validation_forward/readme/DESCRIPTION.md deleted file mode 100644 index c00143e26..000000000 --- a/base_tier_validation_forward/readme/DESCRIPTION.md +++ /dev/null @@ -1,13 +0,0 @@ -This module add an advance option to base_tier_validation. - -- To allow "Forward" the tier to different user. - -**Sample use case:** - -A user is appointed to approve a tire, but he/she don't want to make -decision for some reason, and want to pass/forward the decision to -another person. - -User can then click on Forward instead of Approve. A new tier with minor -sequence will be created on the reviewer table, and new user will be -able to make approval decision. diff --git a/base_tier_validation_forward/security/ir.model.access.csv b/base_tier_validation_forward/security/ir.model.access.csv deleted file mode 100644 index 1c37580a8..000000000 --- a/base_tier_validation_forward/security/ir.model.access.csv +++ /dev/null @@ -1,2 +0,0 @@ -id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -access_tier_validation_forward_wizard,access.tier.validation.forward.wizard,model_tier_validation_forward_wizard,base.group_user,1,1,1,1 diff --git a/base_tier_validation_forward/static/description/icon.png b/base_tier_validation_forward/static/description/icon.png deleted file mode 100644 index 3a0328b51..000000000 Binary files a/base_tier_validation_forward/static/description/icon.png and /dev/null differ diff --git a/base_tier_validation_forward/static/description/index.html b/base_tier_validation_forward/static/description/index.html deleted file mode 100644 index e5a7f9248..000000000 --- a/base_tier_validation_forward/static/description/index.html +++ /dev/null @@ -1,454 +0,0 @@ - - - - - -README.rst - - - -
- - - -Odoo Community Association - -
-

Base Tier Validation Forward

- -

Alpha License: AGPL-3 OCA/tier-validation Translate me on Weblate Try me on Runboat

-

This module add an advance option to base_tier_validation.

-
    -
  • To allow “Forward” the tier to different user.
  • -
-

Sample use case:

-

A user is appointed to approve a tire, but he/she don’t want to make -decision for some reason, and want to pass/forward the decision to -another person.

-

User can then click on Forward instead of Approve. A new tier with minor -sequence will be created on the reviewer table, and new user will be -able to make approval decision.

-
-

Important

-

This is an alpha version, the data model and design can change at any time without warning. -Only for development or testing purpose, do not use in production. -More details on development status

-
-

Table of contents

- -
-

Configuration

-

In any tier definition, check “Allow Forward” to enable this feature.

-
-
-

Bug Tracker

-

Bugs are tracked on GitHub 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.

-

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

-
-
-

Credits

-
-

Authors

-
    -
  • Ecosoft
  • -
-
-
-

Contributors

- -
-
-

Maintainers

-

This module is maintained by the OCA.

- -Odoo Community Association - -

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.

-

Current maintainer:

-

kittiu

-

This module is part of the OCA/tier-validation project on GitHub.

-

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

-
-
-
-
- - diff --git a/base_tier_validation_forward/static/src/xml/tier_review_template.xml b/base_tier_validation_forward/static/src/xml/tier_review_template.xml deleted file mode 100644 index 1557851d7..000000000 --- a/base_tier_validation_forward/static/src/xml/tier_review_template.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - diff --git a/base_tier_validation_forward/templates/tier_validation_templates.xml b/base_tier_validation_forward/templates/tier_validation_templates.xml deleted file mode 100644 index f8e94d612..000000000 --- a/base_tier_validation_forward/templates/tier_validation_templates.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - diff --git a/base_tier_validation_forward/tests/__init__.py b/base_tier_validation_forward/tests/__init__.py deleted file mode 100644 index b439a531d..000000000 --- a/base_tier_validation_forward/tests/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# Copyright 2020 Ecosoft Co., Ltd. (http://ecosoft.co.th) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -from . import test_tier_validation diff --git a/base_tier_validation_forward/tests/test_tier_validation.py b/base_tier_validation_forward/tests/test_tier_validation.py deleted file mode 100644 index 5f31696c1..000000000 --- a/base_tier_validation_forward/tests/test_tier_validation.py +++ /dev/null @@ -1,210 +0,0 @@ -# Copyright 2018 ForgeFlow S.L. -# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html). - -from odoo.tests import Form, new_test_user, tagged - -from odoo.addons.base_tier_validation.tests.common import CommonTierValidation - - -@tagged("post_install", "-at_install") -class TierTierValidation(CommonTierValidation): - @classmethod - def setUpClass(cls): - super().setUpClass() - cls.other_test_user = new_test_user(cls.env, name="Clarissa", login="forward") - - def test_01_forward_tier(self): - # Create new test record - test_record = self.test_model.create({"test_field": 2.5}) - # Create tier definitions - self.tier_def_obj.create( - { - "model_id": self.tester_model.id, - "review_type": "individual", - "reviewer_id": self.test_user_2.id, - "definition_domain": "[('test_field', '>', 1.0)]", - "approve_sequence": True, - "has_forward": True, - } - ) - # Request validation - review = test_record.with_user(self.test_user_2.id).request_validation() - self.assertTrue(review) - record = test_record.with_user(self.test_user_1.id) - record.invalidate_recordset() - record.validate_tier() - self.assertFalse(record.can_forward) - # User 2 forward to user 1 - record = test_record.with_user(self.test_user_2.id) - record.invalidate_recordset() - self.assertTrue(record.can_forward) - res = record.forward_tier() - ctx = res.get("context") - wizard = Form( - self.env["tier.validation.forward.wizard"] - .with_user(self.test_user_2.id) - .with_context(**ctx) - ) - wizard.forward_reviewer_id = self.test_user_1 - wizard.forward_description = "Please review again" - wiz = wizard.save() - wiz.add_forward() - # Newly created forwarded review will have no definition - record = test_record.with_user(self.test_user_2.id) - record.invalidate_recordset() - self.assertTrue(record.review_ids.filtered(lambda r: not r.definition_id)) - # User 1 validate - res = record.with_user(self.test_user_1.id).validate_tier() - ctx = res.get("context") - wizard = Form( - self.env["comment.wizard"] - .with_user(self.test_user_1.id) - .with_context(**ctx) - ) - wizard.comment = "Forward tier is reviewed" - wiz = wizard.save() - wiz.add_comment() - self.assertEqual(record.validation_status, "validated") - - def _test_forward_tier_multiple(self, has_comment=False): - """Run forwarding flow with or without comments""" - self.tier_def_obj.create( - { - "approve_sequence": True, - "definition_domain": "[('test_field', '>', 1.0)]", - "has_comment": has_comment, - "has_forward": True, - "model_id": self.tester_model.id, - "review_type": "individual", - "reviewer_id": self.test_user_1.id, - "sequence": 2, - } - ) - self.tier_def_obj.create( - { - "approve_sequence": True, - "definition_domain": "[('test_field', '>', 1.0)]", - "has_comment": True, - "has_forward": True, - "model_id": self.tester_model.id, - "review_type": "individual", - "reviewer_id": self.test_user_2.id, - "sequence": 1, - } - ) - # Create new test record - test_record = self.test_model.create({"test_field": 2.5}) - reviews = test_record.with_user(self.test_user_2.id).request_validation() - self.assertEqual( - reviews.filtered(lambda review: review.sequence == 1).status, "pending" - ) - self.env.invalidate_all() - self.assertRecordValues( - test_record.review_ids, - [ - { - "reviewer_id": self.test_user_1.id, - "status": "pending", - }, - { - "reviewer_id": self.test_user_2.id, - "status": "waiting", - }, - ], - ) - # Forward the first review - action = test_record.with_user(self.test_user_1).forward_tier() - self.env[action["res_model"]].with_user(self.test_user_1).with_context( - **action["context"] - ).create( - { - "forward_reviewer_id": self.other_test_user.id, - "forward_description": "Have a look", - } - ).add_forward() - # The forwarded review is now in status 'forwarded', - # The new review is in state 'pending', - # and the remaining review is in status 'waiting'. - self.assertRecordValues( - test_record.review_ids, - [ - { - "reviewer_id": self.test_user_1.id, - "status": "forwarded", - }, - { - "reviewer_id": self.other_test_user.id, - "status": "pending", - }, - { - "reviewer_id": self.test_user_2.id, - "status": "waiting", - }, - ], - ) - - action = test_record.with_user(self.other_test_user).validate_tier() - if action: - self.env[action["res_model"]].with_user(self.other_test_user).with_context( - **action["context"] - ).create( - { - "comment": "Reviewed", - } - ).add_comment() - - self.assertRecordValues( - test_record.review_ids, - [ - { - "reviewer_id": self.test_user_1.id, - "status": "forwarded", - }, - { - "reviewer_id": self.other_test_user.id, - "status": "approved", - }, - { - "reviewer_id": self.test_user_2.id, - "status": "pending", - }, - ], - ) - - action = test_record.with_user(self.test_user_2).validate_tier() - if action: - self.env[action["res_model"]].with_user(self.test_user_2).with_context( - **action["context"] - ).create( - { - "comment": "Reviewed", - } - ).add_comment() - - self.assertRecordValues( - test_record.review_ids, - [ - { - "reviewer_id": self.test_user_1.id, - "status": "forwarded", - }, - { - "reviewer_id": self.other_test_user.id, - "status": "approved", - }, - { - "reviewer_id": self.test_user_2.id, - "status": "approved", - }, - ], - ) - self.assertEqual(test_record.validation_status, "validated") - - def test_02_forward_tier_multiple_with_comment(self): - """Expected flow with forwards and comments""" - # Create tier definitions with a different sequence - self._test_forward_tier_multiple(has_comment=True) - - def test_03_forward_tier_multiple_without_comment(self): - """Expected flow with forwards, but without comments""" - self._test_forward_tier_multiple(has_comment=False) diff --git a/base_tier_validation_forward/views/tier_definition_view.xml b/base_tier_validation_forward/views/tier_definition_view.xml deleted file mode 100644 index dc46510f7..000000000 --- a/base_tier_validation_forward/views/tier_definition_view.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - tier.definition.form - tier.definition - - - - - - - - diff --git a/base_tier_validation_forward/wizard/__init__.py b/base_tier_validation_forward/wizard/__init__.py deleted file mode 100644 index d93afa0de..000000000 --- a/base_tier_validation_forward/wizard/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -# Copyright 2020 Ecosoft Co., Ltd. (http://ecosoft.co.th) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -from . import comment_wizard -from . import forward_wizard diff --git a/base_tier_validation_forward/wizard/comment_wizard.py b/base_tier_validation_forward/wizard/comment_wizard.py deleted file mode 100644 index b1e2e7144..000000000 --- a/base_tier_validation_forward/wizard/comment_wizard.py +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright 2020 Ecosoft Co., Ltd. (http://ecosoft.co.th) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -from odoo import models - - -class CommentWizard(models.TransientModel): - _inherit = "comment.wizard" - - def add_comment(self): - res = super().add_comment() - rec = self.env[self.res_model].browse(self.res_id) - if self.validate_reject == "forward": - rec._forward_tier(self.review_ids) - rec._update_counter({"review_created": True}) - return res diff --git a/base_tier_validation_forward/wizard/forward_wizard.py b/base_tier_validation_forward/wizard/forward_wizard.py deleted file mode 100644 index 48a611dd4..000000000 --- a/base_tier_validation_forward/wizard/forward_wizard.py +++ /dev/null @@ -1,68 +0,0 @@ -# Copyright 2020 Ecosoft Co., Ltd. (http://ecosoft.co.th) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -from odoo import fields, models - - -class ValidationForwardWizard(models.TransientModel): - _name = "tier.validation.forward.wizard" - _description = "Forward Wizard" - - res_model = fields.Char() - res_id = fields.Integer() - forward_reviewer_id = fields.Many2one( - comodel_name="res.users", - string="Next Reviewer", - required=True, - ) - forward_description = fields.Char() - has_comment = fields.Boolean(string="Allow Comment", default=True) - approve_sequence = fields.Boolean( - string="Approve by sequence", - default=True, - ) - - def add_forward(self): - """Add extra step, with specific reviewer""" - self.ensure_one() - rec = self.env[self.res_model].browse(self.res_id) - prev_comment = self.env["comment.wizard"].browse( - self.env.context.get("comment_id") - ) - prev_comment.write( - { - "comment": self.env._( - ">> %(reviewer)s", reviewer=self.forward_reviewer_id.display_name - ) - } - ) - prev_comment.with_context( - tier_validation_defer_compute_can_review=True - ).add_comment() - prev_reviews = prev_comment.review_ids - review = ( - self.env["tier.review"] - .with_context(tier_validation_defer_compute_can_review=True) - .create( - { - "model": rec._name, - "res_id": rec.id, - "sequence": max(prev_reviews.mapped("sequence")), - "requested_by": self.env.uid, - } - ) - ) - # Because following fields are readonly, we need to write after create - review.write( - { - "name": self.forward_description, - "review_type": "individual", - "reviewer_id": self.forward_reviewer_id.id, - "has_comment": self.has_comment, - "approve_sequence": self.approve_sequence, - } - ) - rec.invalidate_recordset() - # After user 1 forwards their review, the new review for user 2 must - # become pending so user 2 can approve it and the next sequence can - # start. - rec.review_ids._update_review_status() diff --git a/base_tier_validation_forward/wizard/forward_wizard_view.xml b/base_tier_validation_forward/wizard/forward_wizard_view.xml deleted file mode 100644 index 909bf60de..000000000 --- a/base_tier_validation_forward/wizard/forward_wizard_view.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - Forward Wizard - tier.validation.forward.wizard - form - -
- - - - - - - - - - -
-
-
-
-
-
diff --git a/base_tier_validation_server_action/README.rst b/base_tier_validation_server_action/README.rst deleted file mode 100644 index 91ea4ff0a..000000000 --- a/base_tier_validation_server_action/README.rst +++ /dev/null @@ -1,104 +0,0 @@ -.. 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 - Server Action -==================================== - -.. - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! This file is generated by oca-gen-addon-readme !! - !! changes will be overwritten. !! - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:69bbfe38cb67ae0d8ca9de827c708be7bc0622a7365a607cb318d9f0198efb18 - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -.. |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%2Ftier--validation-lightgray.png?logo=github - :target: https://github.com/OCA/tier-validation/tree/19.0/base_tier_validation_server_action - :alt: OCA/tier-validation -.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/tier-validation-19-0/tier-validation-19-0-base_tier_validation_server_action - :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/tier-validation&target_branch=19.0 - :alt: Try me on Runboat - -|badge1| |badge2| |badge3| |badge4| |badge5| - -This module add option to call "Server Action" when a tier definition is -approved or rejected - -**Table of contents** - -.. contents:: - :local: - -Configuration -============= - -On each Tier Definition - -- Choose server action you want to call as soon this definition is - approved or rejected - -- Select "Auto Validate", if you want this definition to get validated - by cron job based on "if pass condition" criteria, - - - If no user specified, use job's system user to validate - - If 1 user matched as reviewer, use the user to validate - - If > 1 user matched as reviewer, do not auto validate - -Bug Tracker -=========== - -Bugs are tracked on `GitHub 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 `_. - -Do not contact contributors directly about support or help with technical issues. - -Credits -======= - -Authors -------- - -* Ecosoft - -Contributors ------------- - -- Kitti U. - -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-kittiu| image:: https://github.com/kittiu.png?size=40px - :target: https://github.com/kittiu - :alt: kittiu - -Current `maintainer `__: - -|maintainer-kittiu| - -This module is part of the `OCA/tier-validation `_ project on GitHub. - -You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/base_tier_validation_server_action/__manifest__.py b/base_tier_validation_server_action/__manifest__.py deleted file mode 100644 index 037950c11..000000000 --- a/base_tier_validation_server_action/__manifest__.py +++ /dev/null @@ -1,20 +0,0 @@ -# Copyright 2017-19 ForgeFlow S.L. (https://www.forgeflow.com) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -{ - "name": "Base Tier Validation - Server Action", - "summary": "Add option to call server action when a tier is validated", - "version": "19.0.1.0.0", - "category": "Tools", - "website": "https://github.com/OCA/tier-validation", - "author": "Ecosoft, Odoo Community Association (OCA)", - "license": "AGPL-3", - "application": False, - "installable": True, - "depends": ["base_tier_validation"], - "data": [ - "data/cron_data.xml", - "views/tier_definition_view.xml", - ], - "maintainers": ["kittiu"], - "development_status": "Beta", -} diff --git a/base_tier_validation_server_action/data/cron_data.xml b/base_tier_validation_server_action/data/cron_data.xml deleted file mode 100644 index 5f263e0a6..000000000 --- a/base_tier_validation_server_action/data/cron_data.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - Automatic Tier Validation - 1 - hours - - - model._cron_auto_tier_validation() - code - - diff --git a/base_tier_validation_server_action/i18n/base_tier_validation_server_action.pot b/base_tier_validation_server_action/i18n/base_tier_validation_server_action.pot deleted file mode 100644 index 13a39cdd8..000000000 --- a/base_tier_validation_server_action/i18n/base_tier_validation_server_action.pot +++ /dev/null @@ -1,85 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * base_tier_validation_server_action -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 19.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_tier_validation_server_action -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_definition__auto_validate -msgid "Auto Validate" -msgstr "" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_definition__auto_validate_domain -msgid "Auto Validate Domain" -msgstr "" - -#. module: base_tier_validation_server_action -#: model:ir.actions.server,name:base_tier_validation_server_action.ir_cron_auto_tier_validation_ir_actions_server -msgid "Automatic Tier Validation" -msgstr "" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_definition__display_name -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_validation__display_name -msgid "Display Name" -msgstr "" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_definition__id -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_validation__id -msgid "ID" -msgstr "" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_definition__server_action_id -msgid "Post Approve Action" -msgstr "" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_definition__rejected_server_action_id -msgid "Post Reject Action" -msgstr "" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,help:base_tier_validation_server_action.field_tier_definition__server_action_id -msgid "Server action triggered as soon as this step is approved" -msgstr "" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,help:base_tier_validation_server_action.field_tier_definition__rejected_server_action_id -msgid "Server action triggered as soon as this step is rejected" -msgstr "" - -#. module: base_tier_validation_server_action -#: model:ir.model,name:base_tier_validation_server_action.model_tier_definition -msgid "Tier Definition" -msgstr "" - -#. module: base_tier_validation_server_action -#: model:ir.model,name:base_tier_validation_server_action.model_tier_validation -msgid "Tier Validation (abstract)" -msgstr "" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,help:base_tier_validation_server_action.field_tier_definition__auto_validate -msgid "" -"Use schedule job to auto validate if condition is met.\n" -"- If no user specified, use job's system user to validate\n" -"- If 1 user matched as reviewer, use the user to validate\n" -"- If > 1 user matched as reviewer, do not auto validate" -msgstr "" - -#. module: base_tier_validation_server_action -#: model_terms:ir.ui.view,arch_db:base_tier_validation_server_action.tier_definition_view_form -msgid "if pass condition" -msgstr "" diff --git a/base_tier_validation_server_action/i18n/de.po b/base_tier_validation_server_action/i18n/de.po deleted file mode 100644 index 73e925c1d..000000000 --- a/base_tier_validation_server_action/i18n/de.po +++ /dev/null @@ -1,96 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * base_tier_validation_server_action -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 19.0\n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-07-06 08:46+0000\n" -"Last-Translator: intero-chd \n" -"Language-Team: none\n" -"Language: de\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.15.2\n" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_definition__auto_validate -msgid "Auto Validate" -msgstr "Automatische Überprüfung" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_definition__auto_validate_domain -msgid "Auto Validate Domain" -msgstr "Automatische Validierung Domain" - -#. module: base_tier_validation_server_action -#: model:ir.actions.server,name:base_tier_validation_server_action.ir_cron_auto_tier_validation_ir_actions_server -msgid "Automatic Tier Validation" -msgstr "Automatische Überprüfung der Stufe" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_definition__display_name -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_validation__display_name -msgid "Display Name" -msgstr "Anzeigename" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_definition__id -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_validation__id -msgid "ID" -msgstr "ID" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_definition__server_action_id -msgid "Post Approve Action" -msgstr "Maßnahme nach der Genehmigung" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_definition__rejected_server_action_id -msgid "Post Reject Action" -msgstr "Maßnahme nach der Ablehnung" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,help:base_tier_validation_server_action.field_tier_definition__server_action_id -msgid "Server action triggered as soon as this step is approved" -msgstr "Sobald dieser Schritt genehmigt wird, wird eine Serveraktion ausgelöst" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,help:base_tier_validation_server_action.field_tier_definition__rejected_server_action_id -msgid "Server action triggered as soon as this step is rejected" -msgstr "Sobald dieser Schritt abgelehnt wird, wird eine Serveraktion ausgelöst" - -#. module: base_tier_validation_server_action -#: model:ir.model,name:base_tier_validation_server_action.model_tier_definition -msgid "Tier Definition" -msgstr "Stufendefinition" - -#. module: base_tier_validation_server_action -#: model:ir.model,name:base_tier_validation_server_action.model_tier_validation -msgid "Tier Validation (abstract)" -msgstr "" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,help:base_tier_validation_server_action.field_tier_definition__auto_validate -msgid "" -"Use schedule job to auto validate if condition is met.\n" -"- If no user specified, use job's system user to validate\n" -"- If 1 user matched as reviewer, use the user to validate\n" -"- If > 1 user matched as reviewer, do not auto validate" -msgstr "" -"Verwenden Sie eine geplante Aktion, um automatisch zu prüfen, ob die " -"Bedingung erfüllt ist.\n" -"- Wenn kein Benutzer angegeben wurde, verwenden Sie den Systembenutzer der " -"geplanten Aktion zur Überprüfung\n" -"- Wenn ein Benutzer als Genehmiger gefunden wurde, verwenden Sie diesen " -"Benutzer zur Überprüfung\n" -"- Wenn mehr als ein Benutzer als Genehmiger gefunden wurde, führen Sie keine " -"automatische Überprüfung durch" - -#. module: base_tier_validation_server_action -#: model_terms:ir.ui.view,arch_db:base_tier_validation_server_action.tier_definition_view_form -msgid "if pass condition" -msgstr "" diff --git a/base_tier_validation_server_action/i18n/es.po b/base_tier_validation_server_action/i18n/es.po deleted file mode 100644 index 011ddd7bb..000000000 --- a/base_tier_validation_server_action/i18n/es.po +++ /dev/null @@ -1,102 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * base_tier_validation_server_action -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-01-09 15:35+0000\n" -"Last-Translator: Ivorra78 \n" -"Language-Team: none\n" -"Language: es\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.17\n" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_definition__auto_validate -msgid "Auto Validate" -msgstr "Auto-validar" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_definition__auto_validate_domain -msgid "Auto Validate Domain" -msgstr "Auto-validar dominio" - -#. module: base_tier_validation_server_action -#: model:ir.actions.server,name:base_tier_validation_server_action.ir_cron_auto_tier_validation_ir_actions_server -#: model:ir.cron,cron_name:base_tier_validation_server_action.ir_cron_auto_tier_validation -#: model:ir.cron,name:base_tier_validation_server_action.ir_cron_auto_tier_validation -msgid "Automatic Tier Validation" -msgstr "Validación Automática de Niveles" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_definition__display_name -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_review__display_name -msgid "Display Name" -msgstr "Nombre mostrado" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_definition__id -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_review__id -msgid "ID" -msgstr "ID" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_definition____last_update -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_review____last_update -msgid "Last Modified on" -msgstr "Última modificación el" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_definition__server_action_id -msgid "Post Approve Action" -msgstr "Post Aprobar Acción" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_definition__rejected_server_action_id -msgid "Post Reject Action" -msgstr "Acción Post Rechazo" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,help:base_tier_validation_server_action.field_tier_definition__server_action_id -msgid "Server action triggered as soon as this step is approved" -msgstr "La acción del servidor se activa en cuanto se aprueba este paso" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,help:base_tier_validation_server_action.field_tier_definition__rejected_server_action_id -msgid "Server action triggered as soon as this step is rejected" -msgstr "Acción del servidor activada en cuanto se rechaza este paso" - -#. module: base_tier_validation_server_action -#: model:ir.model,name:base_tier_validation_server_action.model_tier_definition -msgid "Tier Definition" -msgstr "Definición del Nivel" - -#. module: base_tier_validation_server_action -#: model:ir.model,name:base_tier_validation_server_action.model_tier_review -msgid "Tier Review" -msgstr "Revisión del Nivel" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,help:base_tier_validation_server_action.field_tier_definition__auto_validate -msgid "" -"Use schedule job to auto validate if condition is met.\n" -"- If no user specified, use job's system user to validate\n" -"- If 1 user matched as reviewer, use the user to validate\n" -"- If > 1 user matched as reviewer, do not auto validate" -msgstr "" -"Utiliza el trabajo programado para validar automáticamente si se cumple la " -"condición.\n" -"- Si no se especifica ningún usuario, utilizar el usuario del sistema del " -"trabajo para validar.\n" -"- Si 1 usuario coincide como revisor, utilizar el usuario para validar\n" -"- Si > 1 usuario coincide como revisor, no validar automáticamente" - -#. module: base_tier_validation_server_action -#: model_terms:ir.ui.view,arch_db:base_tier_validation_server_action.tier_definition_view_form -msgid "if pass condition" -msgstr "si pasa la condición" diff --git a/base_tier_validation_server_action/i18n/fr.po b/base_tier_validation_server_action/i18n/fr.po deleted file mode 100644 index 13a6ee738..000000000 --- a/base_tier_validation_server_action/i18n/fr.po +++ /dev/null @@ -1,75 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * base_tier_validation_server_action -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 16.0\n" -"Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" -"Language-Team: none\n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n > 1;\n" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_definition__auto_validate -msgid "Auto Validate" -msgstr "" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_definition__auto_validate_domain -msgid "Auto Validate Domain" -msgstr "" - -#. module: base_tier_validation_server_action -#: model:ir.actions.server,name:base_tier_validation_server_action.ir_cron_auto_tier_validation_ir_actions_server -#: model:ir.cron,cron_name:base_tier_validation_server_action.ir_cron_auto_tier_validation -msgid "Automatic Tier Validation" -msgstr "" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_definition__server_action_id -msgid "Post Approve Action" -msgstr "" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_definition__rejected_server_action_id -msgid "Post Reject Action" -msgstr "" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,help:base_tier_validation_server_action.field_tier_definition__server_action_id -msgid "Server action triggered as soon as this step is approved" -msgstr "" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,help:base_tier_validation_server_action.field_tier_definition__rejected_server_action_id -msgid "Server action triggered as soon as this step is rejected" -msgstr "" - -#. module: base_tier_validation_server_action -#: model:ir.model,name:base_tier_validation_server_action.model_tier_definition -msgid "Tier Definition" -msgstr "" - -#. module: base_tier_validation_server_action -#: model:ir.model,name:base_tier_validation_server_action.model_tier_validation -msgid "Tier Validation (abstract)" -msgstr "" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,help:base_tier_validation_server_action.field_tier_definition__auto_validate -msgid "" -"Use schedule job to auto validate if condition is met.\n" -"- If no user specified, use job's system user to validate\n" -"- If 1 user matched as reviewer, use the user to validate\n" -"- If > 1 user matched as reviewer, do not auto validate" -msgstr "" - -#. module: base_tier_validation_server_action -#: model_terms:ir.ui.view,arch_db:base_tier_validation_server_action.tier_definition_view_form -msgid "if pass condition" -msgstr "" diff --git a/base_tier_validation_server_action/i18n/it.po b/base_tier_validation_server_action/i18n/it.po deleted file mode 100644 index 924021b36..000000000 --- a/base_tier_validation_server_action/i18n/it.po +++ /dev/null @@ -1,82 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * base_tier_validation_server_action -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 16.0\n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-01-05 10:36+0000\n" -"Last-Translator: mymage \n" -"Language-Team: none\n" -"Language: it\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.17\n" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_definition__auto_validate -msgid "Auto Validate" -msgstr "Auto validazione" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_definition__auto_validate_domain -msgid "Auto Validate Domain" -msgstr "Dominio auto validazione" - -#. module: base_tier_validation_server_action -#: model:ir.actions.server,name:base_tier_validation_server_action.ir_cron_auto_tier_validation_ir_actions_server -#: model:ir.cron,cron_name:base_tier_validation_server_action.ir_cron_auto_tier_validation -msgid "Automatic Tier Validation" -msgstr "Validazione automatica livello" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_definition__server_action_id -msgid "Post Approve Action" -msgstr "Invio azione approvazione" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_definition__rejected_server_action_id -msgid "Post Reject Action" -msgstr "Invio azione rifiuto" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,help:base_tier_validation_server_action.field_tier_definition__server_action_id -msgid "Server action triggered as soon as this step is approved" -msgstr "Azione del server attivata appena questa fase è approvata" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,help:base_tier_validation_server_action.field_tier_definition__rejected_server_action_id -msgid "Server action triggered as soon as this step is rejected" -msgstr "Azione del server attivata appena questa fase è respinta" - -#. module: base_tier_validation_server_action -#: model:ir.model,name:base_tier_validation_server_action.model_tier_definition -msgid "Tier Definition" -msgstr "Definizione livello" - -#. module: base_tier_validation_server_action -#: model:ir.model,name:base_tier_validation_server_action.model_tier_validation -msgid "Tier Validation (abstract)" -msgstr "Validazione livello (sintesi)" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,help:base_tier_validation_server_action.field_tier_definition__auto_validate -msgid "" -"Use schedule job to auto validate if condition is met.\n" -"- If no user specified, use job's system user to validate\n" -"- If 1 user matched as reviewer, use the user to validate\n" -"- If > 1 user matched as reviewer, do not auto validate" -msgstr "" -"Utilizzare il lavoro schedulato per auto validare se la condizione è " -"soddisfatta.\n" -"- Se non è secificato l'utente, utilizzare l'utente di sistema per validare\n" -"- Se un utente corrisponde come revisore, utilizzare l'utente per validare\n" -"- Se più di un utente corrsponde come revisore, non eseguire auto validazione" - -#. module: base_tier_validation_server_action -#: model_terms:ir.ui.view,arch_db:base_tier_validation_server_action.tier_definition_view_form -msgid "if pass condition" -msgstr "se supera la condizione" diff --git a/base_tier_validation_server_action/i18n/nl.po b/base_tier_validation_server_action/i18n/nl.po deleted file mode 100644 index ada98ecc9..000000000 --- a/base_tier_validation_server_action/i18n/nl.po +++ /dev/null @@ -1,96 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * base_tier_validation_server_action -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 19.0\n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-05-13 22:45+0000\n" -"Last-Translator: Bosd \n" -"Language-Team: none\n" -"Language: nl\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.15.2\n" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_definition__auto_validate -msgid "Auto Validate" -msgstr "Automatisch valideren" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_definition__auto_validate_domain -msgid "Auto Validate Domain" -msgstr "Domein voor automatische validatie" - -#. module: base_tier_validation_server_action -#: model:ir.actions.server,name:base_tier_validation_server_action.ir_cron_auto_tier_validation_ir_actions_server -msgid "Automatic Tier Validation" -msgstr "Automatische niveauvalidatie" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_definition__display_name -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_validation__display_name -msgid "Display Name" -msgstr "Schermnaam" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_definition__id -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_validation__id -msgid "ID" -msgstr "ID" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_definition__server_action_id -msgid "Post Approve Action" -msgstr "Actie na goedkeuring" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,field_description:base_tier_validation_server_action.field_tier_definition__rejected_server_action_id -msgid "Post Reject Action" -msgstr "Actie na afwijzing" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,help:base_tier_validation_server_action.field_tier_definition__server_action_id -msgid "Server action triggered as soon as this step is approved" -msgstr "Serveractie die wordt geactiveerd zodra deze stap is goedgekeurd" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,help:base_tier_validation_server_action.field_tier_definition__rejected_server_action_id -msgid "Server action triggered as soon as this step is rejected" -msgstr "Serveractie die wordt geactiveerd zodra deze stap is afgewezen" - -#. module: base_tier_validation_server_action -#: model:ir.model,name:base_tier_validation_server_action.model_tier_definition -msgid "Tier Definition" -msgstr "Niveaudefinitie" - -#. module: base_tier_validation_server_action -#: model:ir.model,name:base_tier_validation_server_action.model_tier_validation -msgid "Tier Validation (abstract)" -msgstr "Niveauvalidatie (abstract)" - -#. module: base_tier_validation_server_action -#: model:ir.model.fields,help:base_tier_validation_server_action.field_tier_definition__auto_validate -msgid "" -"Use schedule job to auto validate if condition is met.\n" -"- If no user specified, use job's system user to validate\n" -"- If 1 user matched as reviewer, use the user to validate\n" -"- If > 1 user matched as reviewer, do not auto validate" -msgstr "" -"Gebruik een geplande taak om automatisch te valideren als aan de voorwaarde " -"is voldaan.\n" -"- Indien geen gebruiker is opgegeven, wordt de systeemgebruiker van de taak " -"gebruikt om te valideren\n" -"- Indien exact 1 gebruiker overeenkomt als beoordelaar, wordt deze gebruiker " -"gebruikt om te valideren\n" -"- Indien meer dan 1 gebruiker overeenkomt als beoordelaar, vindt er geen " -"automatische validatie plaats" - -#. module: base_tier_validation_server_action -#: model_terms:ir.ui.view,arch_db:base_tier_validation_server_action.tier_definition_view_form -msgid "if pass condition" -msgstr "indien voldaan aan voorwaarde" diff --git a/base_tier_validation_server_action/models/tier_definition.py b/base_tier_validation_server_action/models/tier_definition.py deleted file mode 100644 index 90f987ef0..000000000 --- a/base_tier_validation_server_action/models/tier_definition.py +++ /dev/null @@ -1,65 +0,0 @@ -# Copyright 2020 Ecosoft (http://ecosoft.co.th) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -import logging -from ast import literal_eval - -from odoo import api, fields, models -from odoo.fields import Domain - -_logger = logging.getLogger(__name__) - - -class TierDefinition(models.Model): - _inherit = "tier.definition" - - server_action_id = fields.Many2one( - comodel_name="ir.actions.server", - string="Post Approve Action", - domain=[("usage", "=", "ir_actions_server")], - help="Server action triggered as soon as this step is approved", - ) - rejected_server_action_id = fields.Many2one( - comodel_name="ir.actions.server", - string="Post Reject Action", - domain=[("usage", "=", "ir_actions_server")], - help="Server action triggered as soon as this step is rejected", - ) - auto_validate = fields.Boolean( - help="Use schedule job to auto validate if condition is met.\n" - "- If no user specified, use job's system user to validate\n" - "- If 1 user matched as reviewer, use the user to validate\n" - "- If > 1 user matched as reviewer, do not auto validate", - ) - auto_validate_domain = fields.Char() - - def _evaluate_review(self, review): - doc = self.env[review.model].browse(review.res_id) - domain = review.definition_id.auto_validate_domain or "[]" - return doc.filtered_domain(literal_eval(domain)) - - @api.model - def _cron_auto_tier_validation(self): - reviews = self.env["tier.review"].search( - Domain("status", "in", ("waiting", "pending")) - & Domain("definition_id.auto_validate", "=", True) - ) - for review in reviews: - doc = self._evaluate_review(review) - if not doc: - continue - try: - reviewer = review.reviewer_ids or self.env.user - if len(reviewer) > 1: - _logger.warning( - f"Cannot auto tier validate {doc}: too many reviewers" - ) - continue - review_doc = doc.with_user(reviewer) - if review_doc.can_review: - sequences = review_doc._get_sequences_to_approve(reviewer) - if review.sequence in sequences: - review_doc._validate_tier(review) - review_doc._update_counter({"review_deleted": True}) - _logger.info(f"Auto tier validate on {review_doc}") - except Exception as e: - _logger.error(f"Cannot auto tier validate {doc}: {e}") diff --git a/base_tier_validation_server_action/models/tier_validation.py b/base_tier_validation_server_action/models/tier_validation.py deleted file mode 100644 index cfde59a83..000000000 --- a/base_tier_validation_server_action/models/tier_validation.py +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright 2023 Ecosoft (http://ecosoft.co.th) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from odoo import models - - -class TierValidation(models.AbstractModel): - _inherit = "tier.validation" - - def _server_action_tier(self, reviews, status): - for review in reviews: - if status == "approved": - server_action = review.definition_id.server_action_id - if status == "rejected": - server_action = review.definition_id.rejected_server_action_id - server_action_tier = self.env.context.get("server_action_tier") - # Don't allow reentrant server action as it will lead to - # recursive behaviour - if server_action and ( - not server_action_tier or server_action_tier != server_action.id - ): - server_action.with_context( - server_action_tier=server_action.id, - active_model=self._name, - active_id=self.id, - ).sudo().run() - - def _validate_tier(self, tiers=False): - self.ensure_one() - res = super()._validate_tier(tiers) - reviews = self.review_ids.filtered(lambda review: review.status == "approved") - self._server_action_tier(reviews, "approved") - return res - - def _rejected_tier(self, tiers=False): - self.ensure_one() - res = super()._rejected_tier(tiers) - reviews = self.review_ids.filtered(lambda review: review.status == "rejected") - self._server_action_tier(reviews, "rejected") - return res diff --git a/base_tier_validation_server_action/pyproject.toml b/base_tier_validation_server_action/pyproject.toml deleted file mode 100644 index 4231d0ccc..000000000 --- a/base_tier_validation_server_action/pyproject.toml +++ /dev/null @@ -1,3 +0,0 @@ -[build-system] -requires = ["whool"] -build-backend = "whool.buildapi" diff --git a/base_tier_validation_server_action/readme/CONFIGURE.md b/base_tier_validation_server_action/readme/CONFIGURE.md deleted file mode 100644 index 86e27b91a..000000000 --- a/base_tier_validation_server_action/readme/CONFIGURE.md +++ /dev/null @@ -1,9 +0,0 @@ -On each Tier Definition - -- Choose server action you want to call as soon this definition is - approved or rejected - -- Select "Auto Validate", if you want this definition to get validated by cron job based on "if pass condition" criteria, - - If no user specified, use job's system user to validate - - If 1 user matched as reviewer, use the user to validate - - If \> 1 user matched as reviewer, do not auto validate diff --git a/base_tier_validation_server_action/readme/CONTRIBUTORS.md b/base_tier_validation_server_action/readme/CONTRIBUTORS.md deleted file mode 100644 index db1787028..000000000 --- a/base_tier_validation_server_action/readme/CONTRIBUTORS.md +++ /dev/null @@ -1 +0,0 @@ -- Kitti U. \<\> diff --git a/base_tier_validation_server_action/readme/DESCRIPTION.md b/base_tier_validation_server_action/readme/DESCRIPTION.md deleted file mode 100644 index 02161a9c8..000000000 --- a/base_tier_validation_server_action/readme/DESCRIPTION.md +++ /dev/null @@ -1,2 +0,0 @@ -This module add option to call "Server Action" when a tier definition is -approved or rejected diff --git a/base_tier_validation_server_action/static/description/icon.png b/base_tier_validation_server_action/static/description/icon.png deleted file mode 100644 index 3a0328b51..000000000 Binary files a/base_tier_validation_server_action/static/description/icon.png and /dev/null differ diff --git a/base_tier_validation_server_action/tests/__init__.py b/base_tier_validation_server_action/tests/__init__.py deleted file mode 100644 index f39596410..000000000 --- a/base_tier_validation_server_action/tests/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from . import test_tier_validation diff --git a/base_tier_validation_server_action/tests/test_tier_validation.py b/base_tier_validation_server_action/tests/test_tier_validation.py deleted file mode 100644 index 6927f81fb..000000000 --- a/base_tier_validation_server_action/tests/test_tier_validation.py +++ /dev/null @@ -1,186 +0,0 @@ -# Copyright 2020 Ecosoft (http://ecosoft.co.th) -# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html). -from odoo.orm.model_classes import add_to_registry -from odoo.tests.common import tagged - -from odoo.addons.base_tier_validation.tests.common import CommonTierValidation - - -@tagged("post_install", "-at_install") -class TierTierValidation(CommonTierValidation): - @classmethod - def setUpClass(cls): - super().setUpClass() - from .tier_validation_tester import TierValidationTester - - add_to_registry(cls.registry, TierValidationTester) - cls.registry._setup_models__(cls.env.cr, ["tier.validation.tester"]) - cls.registry.init_models( - cls.env.cr, - ["tier.validation.tester"], - {"models_to_check": True}, - ) - - def _setup_tier_definitions(self): - self.tier_def_obj.create( - { - "model_id": self.tester_model.id, - "review_type": "individual", - "reviewer_id": self.test_user_1.id, - "definition_domain": "[('test_field', '>', 1.0)]", - "sequence": 30, - } - ) - - def test_1_auto_validation(self): - # Create new test record - test_record = self.test_model.create({"test_field": 2.5}) - # Create tier definitions - self.tier_def_obj.create( - { - "model_id": self.tester_model.id, - "review_type": "individual", - "reviewer_id": self.test_user_1.id, - "sequence": 20, - "approve_sequence": True, - "auto_validate": True, - } - ) - self.tier_def_obj.create( - { - "model_id": self.tester_model.id, - "review_type": "individual", - "reviewer_id": self.test_user_1.id, - "sequence": 10, - "approve_sequence": True, - "auto_validate": True, - "auto_validate_domain": "[('test_field', '>', 3)]", - } - ) - # Request validation - reviews = test_record.with_user(self.test_user_2).request_validation() - reviews._update_review_status() - record = test_record.with_user(self.test_user_1) - record.invalidate_recordset() - # Auto validate, 1st tier, not auto validated - self.tier_def_obj._cron_auto_tier_validation() - self.assertEqual( - record.review_ids.mapped("status"), ["pending", "waiting", "waiting"] - ) - # Manual validate 2nd tier -> OK - record.validate_tier() - self.assertEqual( - record.review_ids.mapped("status"), ["approved", "pending", "waiting"] - ) - # Auto validate, 2nd tier -> OK - self.tier_def_obj._cron_auto_tier_validation() - self.assertEqual( - record.review_ids.mapped("status"), ["approved", "approved", "pending"] - ) - # Auto validate, 3rd tier -> Not pass validate domain - self.tier_def_obj._cron_auto_tier_validation() - self.assertEqual( - record.review_ids.mapped("status"), ["approved", "approved", "pending"] - ) - # Manual validate 3rd tier -> OK - record.validate_tier() - self.assertEqual( - record.review_ids.mapped("status"), ["approved", "approved", "approved"] - ) - - def test_2_auto_validation_exception(self): - # Create new test record - test_record = self.test_model.create({"test_field": 2.5}) - # Create tier definitions - self.tier_def_obj.create( - { - "model_id": self.tester_model.id, - "review_type": "individual", - "reviewer_group_id": self.test_group.id, - "sequence": 20, - "approve_sequence": True, - "auto_validate": True, - } - ) - # Request validation - reviews = test_record.with_user(self.test_user_2).request_validation() - reviews._update_review_status() - record = test_record.with_user(self.test_user_1) - record.invalidate_recordset() - # Auto validate, 1st tier, not auto validated - with self.assertLogs( - "odoo.addons.base_tier_validation_server_action.models.tier_definition", - level="WARNING", - ): - self.tier_def_obj._cron_auto_tier_validation() - self.assertEqual(record.review_ids.mapped("status"), ["pending", "waiting"]) - # Manual validate 2nd tier -> OK - record.validate_tier() - self.assertEqual(record.review_ids.mapped("status"), ["approved", "pending"]) - # Auto validate, 2nd tier -> Not OK, before len(reviewers) > 1 - with self.assertLogs( - "odoo.addons.base_tier_validation_server_action.models.tier_definition", - level="WARNING", - ): - self.tier_def_obj._cron_auto_tier_validation() - self.assertEqual(record.review_ids.mapped("status"), ["approved", "pending"]) - - def test_3_trigger_server_action(self): - # Create new test record - test_record = self.test_model.create({"test_field": 2.5}) - # Create server action - server_action = self.env["ir.actions.server"].create( - { - "name": "Set test_bool = True", - "model_id": self.tester_model.id, - "state": "code", - "code": "record.write({'test_bool': True})", - } - ) - # Create tier definitions - self.tier_def_obj.create( - { - "model_id": self.tester_model.id, - "review_type": "individual", - "reviewer_id": self.test_user_1.id, - "sequence": 20, - "server_action_id": server_action.id, # Server Action - } - ) - # Request validation - reviews = test_record.with_user(self.test_user_2).request_validation() - reviews._update_review_status() - record = test_record.with_user(self.test_user_1) - record.invalidate_recordset() - record.validate_tier() - self.assertTrue(record.test_bool) - - def test_4_trigger_rejected_server_action(self): - # Create new test record - test_record = self.test_model.create({"test_field": 2.5}) - # Create rejected server action - rejected_server_action = self.env["ir.actions.server"].create( - { - "name": "Set test_bool = True", - "model_id": self.tester_model.id, - "state": "code", - "code": "record.write({'test_bool': True})", - } - ) - # Create tier definitions - self.tier_def_obj.create( - { - "model_id": self.tester_model.id, - "review_type": "individual", - "reviewer_id": self.test_user_1.id, - "sequence": 20, - "rejected_server_action_id": rejected_server_action.id, - } - ) - # Request rejection - reviews = test_record.with_user(self.test_user_2).request_validation() - reviews._update_review_status() - record = test_record.with_user(self.test_user_1) - record.invalidate_recordset() - record.reject_tier() - self.assertTrue(record.test_bool) diff --git a/base_tier_validation_server_action/tests/tier_validation_tester.py b/base_tier_validation_server_action/tests/tier_validation_tester.py deleted file mode 100644 index 9356cb09e..000000000 --- a/base_tier_validation_server_action/tests/tier_validation_tester.py +++ /dev/null @@ -1,13 +0,0 @@ -# Copyright 2020 Ecosoft (http://ecosoft.co.th) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from odoo import fields, models - - -class TierValidationTester(models.Model): - _inherit = "tier.validation.tester" - - test_bool = fields.Boolean() - - def _get_under_validation_exceptions(self): - return super()._get_under_validation_exceptions() + ["test_bool"] diff --git a/base_tier_validation_server_action/views/tier_definition_view.xml b/base_tier_validation_server_action/views/tier_definition_view.xml deleted file mode 100644 index af37ae6b1..000000000 --- a/base_tier_validation_server_action/views/tier_definition_view.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - tier.definition.form - tier.definition - - - - - - - - - - - - - diff --git a/product_state/README.rst b/product_state/README.rst new file mode 100644 index 000000000..cb74dd880 --- /dev/null +++ b/product_state/README.rst @@ -0,0 +1,116 @@ +============= +Product State +============= + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:46754da5dcc6fd670fc33b3793012ae8f5f716b433a982d624e4b481c4478cb6 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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/licence-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%2Fproduct--attribute-lightgray.png?logo=github + :target: https://github.com/OCA/product-attribute/tree/18.0/product_state + :alt: OCA/product-attribute +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/product-attribute-18-0/product-attribute-18-0-product_state + :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/product-attribute&target_branch=18.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module introduces the state field on product template and allows +simple product life cycle: + +- draft: In Development +- sellable: Normal +- end: End of Lifecycle +- obsolete: Obsolete + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +To add a product to a state: + +1. Go to the product itself and edit. +2. You can select the desired status in the list of buttons above the + form. + +Bug Tracker +=========== + +Bugs are tracked on `GitHub 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 `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +------- + +* ACSONE SA/NV + +Contributors +------------ + +- Cedric Pigeon +- Alexandre Saunier +- Nikul Chaudhary +- Eduardo Magdalena (C2i Change 2 improve + http://www.c2i.es) +- Andrii Skrypka +- Denis Roussel +- Riccardo Fresco +- Nils Coenen +- `Trobz `__: + + - Tuan Nguyen + +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-emagdalenaC2i| image:: https://github.com/emagdalenaC2i.png?size=40px + :target: https://github.com/emagdalenaC2i + :alt: emagdalenaC2i + +Current `maintainer `__: + +|maintainer-emagdalenaC2i| + +This module is part of the `OCA/product-attribute `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/product_state/__init__.py b/product_state/__init__.py new file mode 100644 index 000000000..411fdc5d8 --- /dev/null +++ b/product_state/__init__.py @@ -0,0 +1,16 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from . import models + + +def post_init_hook(env): + """This hook is used to add a state on existing products + when module product_state is installed. + """ + + product_without_state = env["product.template"].search([("state", "=", False)]) + product_without_state.write({"state": "sellable"}) + product_without_state = env["product.template"].search( + [("product_state_id", "=", False)] + ) + product_without_state._inverse_product_state() diff --git a/product_state/__manifest__.py b/product_state/__manifest__.py new file mode 100644 index 000000000..82d59c278 --- /dev/null +++ b/product_state/__manifest__.py @@ -0,0 +1,26 @@ +# Copyright 2017 ACSONE SA/NV () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). +{ + "name": "Product State", + "summary": """ + Module introducing a state field on product template""", + "author": "ACSONE SA/NV, Odoo Community Association (OCA)", + "website": "https://github.com/OCA/product-attribute", + "category": "Product", + "version": "1.0", + "license": "AGPL-3", + "maintainer": "Odoo Community Association (OCA)", + "development_status": "Beta", + "demo": [], + "depends": ["product"], + "data": [ + "data/product_state_data.xml", + "security/product_state_security.xml", + "security/ir.access.csv", + "views/product_template_views.xml", + "views/product_state_views.xml", + ], + "application": False, + "maintainers": ["emagdalenaC2i"], + "post_init_hook": "post_init_hook", +} diff --git a/product_state/data/product_state_data.xml b/product_state/data/product_state_data.xml new file mode 100644 index 000000000..c7adb6834 --- /dev/null +++ b/product_state/data/product_state_data.xml @@ -0,0 +1,23 @@ + + + draft + In Development + 10 + + + sellable + Normal + 20 + True + + + end + End of Lifecycle + 30 + + + obsolete + Obsolete + 40 + + diff --git a/product_state/i18n/ca.po b/product_state/i18n/ca.po new file mode 100644 index 000000000..77a2836a1 --- /dev/null +++ b/product_state/i18n/ca.po @@ -0,0 +1,198 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_state +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 15.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2022-04-22 10:05+0000\n" +"Last-Translator: pablontura \n" +"Language-Team: none\n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.3.2\n" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__active +msgid "Active" +msgstr "Actiu" + +#. module: product_state +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +msgid "Code" +msgstr "Codi" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__create_uid +msgid "Created by" +msgstr "Creat per" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__create_date +msgid "Created on" +msgstr "Creat el" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__default +msgid "Default state" +msgstr "Estat per defecte" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__description +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +msgid "Description" +msgstr "Descripció" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__display_name +msgid "Display Name" +msgstr "Nom de visualització" + +#. module: product_state +#: model:product.state,name:product_state.product_state_end +msgid "End of Lifecycle" +msgstr "Final del cicle de vida" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__id +msgid "ID" +msgstr "ID" + +#. module: product_state +#: model:product.state,name:product_state.product_state_draft +msgid "In Development" +msgstr "En Desenvolupament" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__write_uid +msgid "Last Updated by" +msgstr "Última actualització per" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__write_date +msgid "Last Updated on" +msgstr "Última actualització el" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__name +msgid "Name" +msgstr "Nom" + +#. module: product_state +#: model:product.state,name:product_state.product_state_sellable +msgid "Normal" +msgstr "Normal" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__products_count +msgid "Number of products" +msgstr "Nombre de productes" + +#. module: product_state +#: model:product.state,name:product_state.product_state_obsolete +msgid "Obsolete" +msgstr "Obsolet" + +#. module: product_state +#: model:ir.model,name:product_state.model_product_template +msgid "Product" +msgstr "" + +#. module: product_state +#: model:ir.actions.act_window,name:product_state.action_open_single_product_state +#: model:ir.model,name:product_state.model_product_state +#: model_terms:ir.ui.view,arch_db:product_state.product_state_search_form_view +msgid "Product State" +msgstr "Estat del producte" + +#. module: product_state +#: model:ir.model.constraint,message:product_state.constraint_product_state_code_unique +msgid "Product State Code must be unique." +msgstr "El codi d'estat del producte ha de ser únic." + +#. module: product_state +#: model:res.groups,name:product_state.group_product_state_manager +msgid "Product State Manager" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_product__state +#: model:ir.model.fields,field_description:product_state.field_product_template__state +msgid "Product Status" +msgstr "Estat del producte" + +#. module: product_state +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_kanban +msgid "Products" +msgstr "Productes" + +#. module: product_state +#: model:ir.model.fields,help:product_state.field_product_product__product_state_id +#: model:ir.model.fields,help:product_state.field_product_template__product_state_id +msgid "Select a state for this product" +msgstr "Seleccioneu un estat per a aquest producte" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__sequence +msgid "Sequence" +msgstr "Seqüència" + +#. module: product_state +#: model:ir.actions.act_window,name:product_state.action_product_state +#: model:ir.model.fields,field_description:product_state.field_product_product__product_state_id +#: model:ir.model.fields,field_description:product_state.field_product_template__product_state_id +#: model_terms:ir.ui.view,arch_db:product_state.view_product_template_search_state +msgid "State" +msgstr "Estat" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__code +msgid "State Code" +msgstr "Codi de l'Estat" + +#. module: product_state +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +msgid "State Name" +msgstr "Nom de l'Estat" + +#. module: product_state +#: model:ir.actions.act_window,name:product_state.action_open_state_products +#: model:ir.model.fields,field_description:product_state.field_product_state__product_ids +#, fuzzy +msgid "State Products" +msgstr "Estat dels productes" + +#. module: product_state +#. odoo-python +#: code:addons/product_state/models/product_template.py:0 +msgid "The product state code %(product_state)s could not be found." +msgstr "" + +#. module: product_state +#. odoo-python +#: code:addons/product_state/models/product_state.py:0 +msgid "There should be only one default state" +msgstr "Només hi hauria d'haver un estat per defecte" + +#. module: product_state +#: model:ir.model.fields,help:product_state.field_product_state__sequence +msgid "Used to order the States" +msgstr "S'utilitza per ordenar els Estats" + +#~ msgid "Last Modified on" +#~ msgstr "Última modificació el" + +#~ msgid "Product States" +#~ msgstr "Estats del producte" + +#, fuzzy, python-format +#~ msgid "The product state code %s could not be found." +#~ msgstr "No s'ha pogut trobar el codi d'estat del producte %s." + +#~ msgid "Product Template" +#~ msgstr "Plantilla de producte" diff --git a/product_state/i18n/de.po b/product_state/i18n/de.po new file mode 100644 index 000000000..86abcdcf4 --- /dev/null +++ b/product_state/i18n/de.po @@ -0,0 +1,199 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_state +# +# Translators: +# Niki Waibel , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-17 02:38+0000\n" +"PO-Revision-Date: 2020-07-22 14:19+0000\n" +"Last-Translator: c2cdidier \n" +"Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 3.10\n" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__active +msgid "Active" +msgstr "" + +#. module: product_state +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +msgid "Code" +msgstr "Code" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__create_uid +msgid "Created by" +msgstr "Erstellt durch" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__create_date +msgid "Created on" +msgstr "Erstellt am" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__default +msgid "Default state" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__description +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +msgid "Description" +msgstr "Beschreibung" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__display_name +msgid "Display Name" +msgstr "Anzeigename" + +#. module: product_state +#: model:product.state,name:product_state.product_state_end +msgid "End of Lifecycle" +msgstr "Ende des Lebenszyklus" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__id +msgid "ID" +msgstr "ID" + +#. module: product_state +#: model:product.state,name:product_state.product_state_draft +msgid "In Development" +msgstr "In Entwicklung" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__write_uid +msgid "Last Updated by" +msgstr "Letzte Änderung durch" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__write_date +msgid "Last Updated on" +msgstr "Zuletzt aktualisiert am" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__name +msgid "Name" +msgstr "Name" + +#. module: product_state +#: model:product.state,name:product_state.product_state_sellable +msgid "Normal" +msgstr "Normal" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__products_count +msgid "Number of products" +msgstr "Anzahl der Produkte" + +#. module: product_state +#: model:product.state,name:product_state.product_state_obsolete +msgid "Obsolete" +msgstr "Veraltet" + +#. module: product_state +#: model:ir.model,name:product_state.model_product_template +msgid "Product" +msgstr "" + +#. module: product_state +#: model:ir.actions.act_window,name:product_state.action_open_single_product_state +#: model:ir.model,name:product_state.model_product_state +#: model_terms:ir.ui.view,arch_db:product_state.product_state_search_form_view +msgid "Product State" +msgstr "Produkt Zustand" + +#. module: product_state +#: model:ir.model.constraint,message:product_state.constraint_product_state_code_unique +msgid "Product State Code must be unique." +msgstr "Produkt Zustandscode muss eindeutig sein." + +#. module: product_state +#: model:res.groups,name:product_state.group_product_state_manager +msgid "Product State Manager" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_product__state +#: model:ir.model.fields,field_description:product_state.field_product_template__state +msgid "Product Status" +msgstr "Produkt-Status" + +#. module: product_state +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_kanban +msgid "Products" +msgstr "Produkte" + +#. module: product_state +#: model:ir.model.fields,help:product_state.field_product_product__product_state_id +#: model:ir.model.fields,help:product_state.field_product_template__product_state_id +msgid "Select a state for this product" +msgstr "Wählen Sie einen Zustand für dieses Produkt" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__sequence +msgid "Sequence" +msgstr "Sequenz" + +#. module: product_state +#: model:ir.actions.act_window,name:product_state.action_product_state +#: model:ir.model.fields,field_description:product_state.field_product_product__product_state_id +#: model:ir.model.fields,field_description:product_state.field_product_template__product_state_id +#: model_terms:ir.ui.view,arch_db:product_state.view_product_template_search_state +msgid "State" +msgstr "Zustand" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__code +msgid "State Code" +msgstr "Zustandscode" + +#. module: product_state +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +msgid "State Name" +msgstr "Zustandsname" + +#. module: product_state +#: model:ir.actions.act_window,name:product_state.action_open_state_products +#: model:ir.model.fields,field_description:product_state.field_product_state__product_ids +msgid "State Products" +msgstr "Produkte Zustand" + +#. module: product_state +#. odoo-python +#: code:addons/product_state/models/product_template.py:0 +msgid "The product state code %(product_state)s could not be found." +msgstr "" + +#. module: product_state +#. odoo-python +#: code:addons/product_state/models/product_state.py:0 +msgid "There should be only one default state" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,help:product_state.field_product_state__sequence +msgid "Used to order the States" +msgstr "Dient zu Sortierung der Zustände" + +#~ msgid "Last Modified on" +#~ msgstr "Letzte Änderung am" + +#~ msgid "Product States" +#~ msgstr "Produkt-Zustände" + +#~ msgid "Product Template" +#~ msgstr "Produktvorlage" + +#~ msgid "product.state" +#~ msgstr "Produktzustand" diff --git a/product_state/i18n/es.po b/product_state/i18n/es.po new file mode 100644 index 000000000..1a4a21610 --- /dev/null +++ b/product_state/i18n/es.po @@ -0,0 +1,204 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_state +# +# Translators: +# Pedro M. Baeza , 2018 +# enjolras , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-01-29 08:49+0000\n" +"PO-Revision-Date: 2026-04-19 07:45+0000\n" +"Last-Translator: Ed-Spain \n" +"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.15.2\n" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__active +msgid "Active" +msgstr "Activo" + +#. module: product_state +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +msgid "Code" +msgstr "Código" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__create_date +msgid "Created on" +msgstr "Creado el" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__default +msgid "Default state" +msgstr "Estado por defecto" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__description +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +msgid "Description" +msgstr "Descripción" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__display_name +msgid "Display Name" +msgstr "Mostrar Nombre" + +#. module: product_state +#: model:product.state,name:product_state.product_state_end +msgid "End of Lifecycle" +msgstr "Fin del ciclo de vida" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__id +msgid "ID" +msgstr "ID (identificación)" + +#. module: product_state +#: model:product.state,name:product_state.product_state_draft +msgid "In Development" +msgstr "En desarrollo" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__write_uid +msgid "Last Updated by" +msgstr "Última actualización por" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__write_date +msgid "Last Updated on" +msgstr "Última Actualización el" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__name +msgid "Name" +msgstr "Nombre" + +#. module: product_state +#: model:product.state,name:product_state.product_state_sellable +msgid "Normal" +msgstr "Normal" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__products_count +msgid "Number of products" +msgstr "Número de productos" + +#. module: product_state +#: model:product.state,name:product_state.product_state_obsolete +msgid "Obsolete" +msgstr "Obsoleto" + +#. module: product_state +#: model:ir.model,name:product_state.model_product_template +msgid "Product" +msgstr "Producto" + +#. module: product_state +#: model:ir.actions.act_window,name:product_state.action_open_single_product_state +#: model:ir.model,name:product_state.model_product_state +#: model_terms:ir.ui.view,arch_db:product_state.product_state_search_form_view +msgid "Product State" +msgstr "Estado del producto" + +#. module: product_state +#: model:ir.model.constraint,message:product_state.constraint_product_state_code_unique +msgid "Product State Code must be unique." +msgstr "El código de estado del producto debe ser único." + +#. module: product_state +#: model:res.groups,name:product_state.group_product_state_manager +msgid "Product State Manager" +msgstr "Gestor de estado de producto" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_product__state +#: model:ir.model.fields,field_description:product_state.field_product_template__state +msgid "Product Status" +msgstr "Plantilla de producto" + +#. module: product_state +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_kanban +msgid "Products" +msgstr "Productos" + +#. module: product_state +#: model:ir.model.fields,help:product_state.field_product_product__product_state_id +#: model:ir.model.fields,help:product_state.field_product_template__product_state_id +msgid "Select a state for this product" +msgstr "Selecciona un estado para este producto" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__sequence +msgid "Sequence" +msgstr "Secuencia" + +#. module: product_state +#: model:ir.actions.act_window,name:product_state.action_product_state +#: model:ir.model.fields,field_description:product_state.field_product_product__product_state_id +#: model:ir.model.fields,field_description:product_state.field_product_template__product_state_id +#: model_terms:ir.ui.view,arch_db:product_state.view_product_template_search_state +msgid "State" +msgstr "Estado" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__code +msgid "State Code" +msgstr "Código de estado" + +#. module: product_state +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +msgid "State Name" +msgstr "Nombre del estado" + +#. module: product_state +#: model:ir.actions.act_window,name:product_state.action_open_state_products +#: model:ir.model.fields,field_description:product_state.field_product_state__product_ids +msgid "State Products" +msgstr "Productos estatales" + +#. module: product_state +#. odoo-python +#: code:addons/product_state/models/product_template.py:0 +msgid "The product state code %(product_state)s could not be found." +msgstr "No se encontró el código de estado del producto %(product_state)s." + +#. module: product_state +#. odoo-python +#: code:addons/product_state/models/product_state.py:0 +msgid "There should be only one default state" +msgstr "Sólo debería haber un estado predeterminado" + +#. module: product_state +#: model:ir.model.fields,help:product_state.field_product_state__sequence +msgid "Used to order the States" +msgstr "Usado para pedir a los estados" + +#~ msgid "Last Modified on" +#~ msgstr "Última Modificación el" + +#~ msgid "Product States" +#~ msgstr "Estados del producto" + +#, python-format +#~ msgid "The product state code %s could not be found." +#~ msgstr "No se ha encontrado el código de estado del producto %s." + +#~ msgid "Product Template" +#~ msgstr "Plantilla de producto" + +#~ msgid "product.state" +#~ msgstr "producto.estado" diff --git a/product_state/i18n/fr.po b/product_state/i18n/fr.po new file mode 100644 index 000000000..1797a07ee --- /dev/null +++ b/product_state/i18n/fr.po @@ -0,0 +1,200 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_state +# +# Translators: +# OCA Transbot , 2017 +# guillaume bauer , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-07-29 02:55+0000\n" +"PO-Revision-Date: 2026-06-09 14:58+0000\n" +"Last-Translator: Yann Papouin \n" +"Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 5.15.2\n" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__active +msgid "Active" +msgstr "Actif" + +#. module: product_state +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +msgid "Code" +msgstr "Code" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__create_uid +msgid "Created by" +msgstr "Créé par" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__create_date +msgid "Created on" +msgstr "Créé le" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__default +msgid "Default state" +msgstr "Etat par défaut" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__description +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +msgid "Description" +msgstr "Description" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__display_name +msgid "Display Name" +msgstr "Nom affiché" + +#. module: product_state +#: model:product.state,name:product_state.product_state_end +msgid "End of Lifecycle" +msgstr "Fin de vie" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__id +msgid "ID" +msgstr "ID" + +#. module: product_state +#: model:product.state,name:product_state.product_state_draft +msgid "In Development" +msgstr "En développement" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__write_uid +msgid "Last Updated by" +msgstr "Modifié par" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__write_date +msgid "Last Updated on" +msgstr "Modifié le" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__name +msgid "Name" +msgstr "Nom" + +#. module: product_state +#: model:product.state,name:product_state.product_state_sellable +msgid "Normal" +msgstr "Normal" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__products_count +msgid "Number of products" +msgstr "Nombre d'articles" + +#. module: product_state +#: model:product.state,name:product_state.product_state_obsolete +msgid "Obsolete" +msgstr "Obsolète" + +#. module: product_state +#: model:ir.model,name:product_state.model_product_template +msgid "Product" +msgstr "Article" + +#. module: product_state +#: model:ir.actions.act_window,name:product_state.action_open_single_product_state +#: model:ir.model,name:product_state.model_product_state +#: model_terms:ir.ui.view,arch_db:product_state.product_state_search_form_view +msgid "Product State" +msgstr "État de l'article" + +#. module: product_state +#: model:ir.model.constraint,message:product_state.constraint_product_state_code_unique +msgid "Product State Code must be unique." +msgstr "Le code d'état de l'article doit être unique." + +#. module: product_state +#: model:res.groups,name:product_state.group_product_state_manager +msgid "Product State Manager" +msgstr "Responsable de l'état des articles" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_product__state +#: model:ir.model.fields,field_description:product_state.field_product_template__state +msgid "Product Status" +msgstr "Statut de l'article" + +#. module: product_state +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_kanban +msgid "Products" +msgstr "Articles" + +#. module: product_state +#: model:ir.model.fields,help:product_state.field_product_product__product_state_id +#: model:ir.model.fields,help:product_state.field_product_template__product_state_id +msgid "Select a state for this product" +msgstr "Sélectionner un état pour cet article" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__sequence +msgid "Sequence" +msgstr "Séquence" + +#. module: product_state +#: model:ir.actions.act_window,name:product_state.action_product_state +#: model:ir.model.fields,field_description:product_state.field_product_product__product_state_id +#: model:ir.model.fields,field_description:product_state.field_product_template__product_state_id +#: model_terms:ir.ui.view,arch_db:product_state.view_product_template_search_state +msgid "State" +msgstr "Statut" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__code +msgid "State Code" +msgstr "Code du statut" + +#. module: product_state +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +msgid "State Name" +msgstr "Nom du statut" + +#. module: product_state +#: model:ir.actions.act_window,name:product_state.action_open_state_products +#: model:ir.model.fields,field_description:product_state.field_product_state__product_ids +msgid "State Products" +msgstr "Statut des articles" + +#. module: product_state +#. odoo-python +#: code:addons/product_state/models/product_template.py:0 +msgid "The product state code %(product_state)s could not be found." +msgstr "Le code d'état %(product_state)s de l'article est introuvable." + +#. module: product_state +#. odoo-python +#: code:addons/product_state/models/product_state.py:0 +msgid "There should be only one default state" +msgstr "Il ne devrait y avoir qu'un seul état par défaut" + +#. module: product_state +#: model:ir.model.fields,help:product_state.field_product_state__sequence +msgid "Used to order the States" +msgstr "Utilisé pour trier les statuts" + +#~ msgid "Last Modified on" +#~ msgstr "Dernière modification le" + +#~ msgid "Product States" +#~ msgstr "Etats de l'article" + +#~ msgid "Product Template" +#~ msgstr "Modèle de l'article" + +#~ msgid "product.state" +#~ msgstr "Statut de l'article" diff --git a/product_state/i18n/hr.po b/product_state/i18n/hr.po new file mode 100644 index 000000000..3d482b28c --- /dev/null +++ b/product_state/i18n/hr.po @@ -0,0 +1,202 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_state +# +# Translators: +# Bole , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-01-29 08:49+0000\n" +"PO-Revision-Date: 2018-01-29 08:49+0000\n" +"Last-Translator: Bole , 2018\n" +"Language-Team: Croatian (https://www.transifex.com/oca/teams/23907/hr/)\n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__active +msgid "Active" +msgstr "" + +#. module: product_state +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +msgid "Code" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__create_uid +msgid "Created by" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__create_date +msgid "Created on" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__default +msgid "Default state" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__description +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +msgid "Description" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__display_name +msgid "Display Name" +msgstr "" + +#. module: product_state +#: model:product.state,name:product_state.product_state_end +msgid "End of Lifecycle" +msgstr "Kraj životnog ciklusa" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__id +msgid "ID" +msgstr "" + +#. module: product_state +#: model:product.state,name:product_state.product_state_draft +msgid "In Development" +msgstr "U razvoju" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__write_date +msgid "Last Updated on" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__name +msgid "Name" +msgstr "" + +#. module: product_state +#: model:product.state,name:product_state.product_state_sellable +msgid "Normal" +msgstr "Normalno" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__products_count +msgid "Number of products" +msgstr "" + +#. module: product_state +#: model:product.state,name:product_state.product_state_obsolete +msgid "Obsolete" +msgstr "Zastarjelo" + +#. module: product_state +#: model:ir.model,name:product_state.model_product_template +msgid "Product" +msgstr "" + +#. module: product_state +#: model:ir.actions.act_window,name:product_state.action_open_single_product_state +#: model:ir.model,name:product_state.model_product_state +#: model_terms:ir.ui.view,arch_db:product_state.product_state_search_form_view +#, fuzzy +msgid "Product State" +msgstr "Predložak proizvoda" + +#. module: product_state +#: model:ir.model.constraint,message:product_state.constraint_product_state_code_unique +msgid "Product State Code must be unique." +msgstr "" + +#. module: product_state +#: model:res.groups,name:product_state.group_product_state_manager +msgid "Product State Manager" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_product__state +#: model:ir.model.fields,field_description:product_state.field_product_template__state +#, fuzzy +msgid "Product Status" +msgstr "Predložak proizvoda" + +#. module: product_state +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_kanban +msgid "Products" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,help:product_state.field_product_product__product_state_id +#: model:ir.model.fields,help:product_state.field_product_template__product_state_id +msgid "Select a state for this product" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__sequence +msgid "Sequence" +msgstr "" + +#. module: product_state +#: model:ir.actions.act_window,name:product_state.action_product_state +#: model:ir.model.fields,field_description:product_state.field_product_product__product_state_id +#: model:ir.model.fields,field_description:product_state.field_product_template__product_state_id +#: model_terms:ir.ui.view,arch_db:product_state.view_product_template_search_state +#, fuzzy +msgid "State" +msgstr "Status" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__code +msgid "State Code" +msgstr "" + +#. module: product_state +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +msgid "State Name" +msgstr "" + +#. module: product_state +#: model:ir.actions.act_window,name:product_state.action_open_state_products +#: model:ir.model.fields,field_description:product_state.field_product_state__product_ids +#, fuzzy +msgid "State Products" +msgstr "Status" + +#. module: product_state +#. odoo-python +#: code:addons/product_state/models/product_template.py:0 +msgid "The product state code %(product_state)s could not be found." +msgstr "" + +#. module: product_state +#. odoo-python +#: code:addons/product_state/models/product_state.py:0 +msgid "There should be only one default state" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,help:product_state.field_product_state__sequence +msgid "Used to order the States" +msgstr "" + +#, fuzzy +#~ msgid "Product States" +#~ msgstr "Predložak proizvoda" + +#~ msgid "Product Template" +#~ msgstr "Predložak proizvoda" + +#, fuzzy +#~ msgid "product.state" +#~ msgstr "Predložak proizvoda" diff --git a/product_state/i18n/it.po b/product_state/i18n/it.po new file mode 100644 index 000000000..9b9884bb2 --- /dev/null +++ b/product_state/i18n/it.po @@ -0,0 +1,194 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_state +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2025-02-03 22:06+0000\n" +"Last-Translator: mymage \n" +"Language-Team: none\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.6.2\n" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__active +msgid "Active" +msgstr "Attivo" + +#. module: product_state +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +msgid "Code" +msgstr "Codice" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__create_uid +msgid "Created by" +msgstr "Creato da" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__create_date +msgid "Created on" +msgstr "Creato il" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__default +msgid "Default state" +msgstr "Stato predefinito" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__description +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +msgid "Description" +msgstr "Descrizione" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__display_name +msgid "Display Name" +msgstr "Nome visualizzato" + +#. module: product_state +#: model:product.state,name:product_state.product_state_end +msgid "End of Lifecycle" +msgstr "Fine ciclo di vita" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__id +msgid "ID" +msgstr "ID" + +#. module: product_state +#: model:product.state,name:product_state.product_state_draft +msgid "In Development" +msgstr "in sviluppo" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__write_uid +msgid "Last Updated by" +msgstr "Ultimo aggiornamento di" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__write_date +msgid "Last Updated on" +msgstr "Ultimo aggiornamento il" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__name +msgid "Name" +msgstr "Nome" + +#. module: product_state +#: model:product.state,name:product_state.product_state_sellable +msgid "Normal" +msgstr "Normale" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__products_count +msgid "Number of products" +msgstr "Numero di prodotti" + +#. module: product_state +#: model:product.state,name:product_state.product_state_obsolete +msgid "Obsolete" +msgstr "Obsoleto" + +#. module: product_state +#: model:ir.model,name:product_state.model_product_template +msgid "Product" +msgstr "Prodotto" + +#. module: product_state +#: model:ir.actions.act_window,name:product_state.action_open_single_product_state +#: model:ir.model,name:product_state.model_product_state +#: model_terms:ir.ui.view,arch_db:product_state.product_state_search_form_view +msgid "Product State" +msgstr "Stato prodotto" + +#. module: product_state +#: model:ir.model.constraint,message:product_state.constraint_product_state_code_unique +msgid "Product State Code must be unique." +msgstr "Codice di stato prodotto deve essere unico." + +#. module: product_state +#: model:res.groups,name:product_state.group_product_state_manager +msgid "Product State Manager" +msgstr "Gestore stato prodotto" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_product__state +#: model:ir.model.fields,field_description:product_state.field_product_template__state +msgid "Product Status" +msgstr "Stato prodotto" + +#. module: product_state +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_kanban +msgid "Products" +msgstr "Prodotti" + +#. module: product_state +#: model:ir.model.fields,help:product_state.field_product_product__product_state_id +#: model:ir.model.fields,help:product_state.field_product_template__product_state_id +msgid "Select a state for this product" +msgstr "Selezionare uno stato per questo prodotto" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__sequence +msgid "Sequence" +msgstr "Sequenza" + +#. module: product_state +#: model:ir.actions.act_window,name:product_state.action_product_state +#: model:ir.model.fields,field_description:product_state.field_product_product__product_state_id +#: model:ir.model.fields,field_description:product_state.field_product_template__product_state_id +#: model_terms:ir.ui.view,arch_db:product_state.view_product_template_search_state +msgid "State" +msgstr "Stato" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__code +msgid "State Code" +msgstr "Codice stato" + +#. module: product_state +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +msgid "State Name" +msgstr "Nome stato" + +#. module: product_state +#: model:ir.actions.act_window,name:product_state.action_open_state_products +#: model:ir.model.fields,field_description:product_state.field_product_state__product_ids +msgid "State Products" +msgstr "Prodotti stato" + +#. module: product_state +#. odoo-python +#: code:addons/product_state/models/product_template.py:0 +msgid "The product state code %(product_state)s could not be found." +msgstr "Il codice di stato prodotto %(product_state)s non è stato trovato." + +#. module: product_state +#. odoo-python +#: code:addons/product_state/models/product_state.py:0 +msgid "There should be only one default state" +msgstr "Ci deve essere un solo stato predefinito" + +#. module: product_state +#: model:ir.model.fields,help:product_state.field_product_state__sequence +msgid "Used to order the States" +msgstr "Usato per ordinare gli stati" + +#~ msgid "Last Modified on" +#~ msgstr "Ultima modifica il" + +#~ msgid "Product States" +#~ msgstr "Stati prodotto" + +#, python-format +#~ msgid "The product state code %s could not be found." +#~ msgstr "Il codice di stato prodotto %s non è stato trovato." diff --git a/product_state/i18n/nl.po b/product_state/i18n/nl.po new file mode 100644 index 000000000..92880bc91 --- /dev/null +++ b/product_state/i18n/nl.po @@ -0,0 +1,193 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_state +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2025-11-20 22:18+0000\n" +"Last-Translator: Bosd \n" +"Language-Team: none\n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.10.4\n" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__active +msgid "Active" +msgstr "Actief" + +#. module: product_state +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +msgid "Code" +msgstr "Code" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__create_uid +msgid "Created by" +msgstr "Aangemaakt door" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__create_date +msgid "Created on" +msgstr "Aangemaakt op" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__default +msgid "Default state" +msgstr "Standaard status" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__description +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +msgid "Description" +msgstr "Omschrijving" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__display_name +msgid "Display Name" +msgstr "Weergavenaam" + +#. module: product_state +#: model:product.state,name:product_state.product_state_end +msgid "End of Lifecycle" +msgstr "Einde levenscyclus" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__id +msgid "ID" +msgstr "ID" + +#. module: product_state +#: model:product.state,name:product_state.product_state_draft +msgid "In Development" +msgstr "In ontwikkeling" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__write_uid +msgid "Last Updated by" +msgstr "Laatst bijgewerkt door" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__write_date +msgid "Last Updated on" +msgstr "Laatst bijgewerkt op" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__name +msgid "Name" +msgstr "Naam" + +#. module: product_state +#: model:product.state,name:product_state.product_state_sellable +msgid "Normal" +msgstr "Normaal" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__products_count +msgid "Number of products" +msgstr "Aantal producten" + +#. module: product_state +#: model:product.state,name:product_state.product_state_obsolete +msgid "Obsolete" +msgstr "Verouderd" + +#. module: product_state +#: model:ir.model,name:product_state.model_product_template +msgid "Product" +msgstr "Product" + +#. module: product_state +#: model:ir.actions.act_window,name:product_state.action_open_single_product_state +#: model:ir.model,name:product_state.model_product_state +#: model_terms:ir.ui.view,arch_db:product_state.product_state_search_form_view +msgid "Product State" +msgstr "Product Status" + +#. module: product_state +#: model:ir.model.constraint,message:product_state.constraint_product_state_code_unique +msgid "Product State Code must be unique." +msgstr "Product Status Code moet uniek zijn." + +#. module: product_state +#: model:res.groups,name:product_state.group_product_state_manager +msgid "Product State Manager" +msgstr "Product Status Beheerder" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_product__state +#: model:ir.model.fields,field_description:product_state.field_product_template__state +msgid "Product Status" +msgstr "Product Status" + +#. module: product_state +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_kanban +msgid "Products" +msgstr "Producten" + +#. module: product_state +#: model:ir.model.fields,help:product_state.field_product_product__product_state_id +#: model:ir.model.fields,help:product_state.field_product_template__product_state_id +msgid "Select a state for this product" +msgstr "Selecteer een status voor dit product" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__sequence +msgid "Sequence" +msgstr "Volgorde" + +#. module: product_state +#: model:ir.actions.act_window,name:product_state.action_product_state +#: model:ir.model.fields,field_description:product_state.field_product_product__product_state_id +#: model:ir.model.fields,field_description:product_state.field_product_template__product_state_id +#: model_terms:ir.ui.view,arch_db:product_state.view_product_template_search_state +msgid "State" +msgstr "Status" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__code +msgid "State Code" +msgstr "Statuscode" + +#. module: product_state +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +msgid "State Name" +msgstr "Statusnaam" + +#. module: product_state +#: model:ir.actions.act_window,name:product_state.action_open_state_products +#: model:ir.model.fields,field_description:product_state.field_product_state__product_ids +msgid "State Products" +msgstr "Status Producten" + +#. module: product_state +#. odoo-python +#: code:addons/product_state/models/product_template.py:0 +msgid "The product state code %(product_state)s could not be found." +msgstr "De product status code %(product_state)s kon niet gevonden worden." + +#. module: product_state +#. odoo-python +#: code:addons/product_state/models/product_state.py:0 +msgid "There should be only one default state" +msgstr "Er mag slechts één standaard status zijn" + +#. module: product_state +#: model:ir.model.fields,help:product_state.field_product_state__sequence +msgid "Used to order the States" +msgstr "Gebruikt om de statussen te ordenen" + +#~ msgid "Last Modified on" +#~ msgstr "Laatst gewijzigd op" + +#~ msgid "Product States" +#~ msgstr "Product status" + +#~ msgid "Product Template" +#~ msgstr "Productsjabloon" diff --git a/product_state/i18n/nl_NL.po b/product_state/i18n/nl_NL.po new file mode 100644 index 000000000..bc56f9cc8 --- /dev/null +++ b/product_state/i18n/nl_NL.po @@ -0,0 +1,200 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_state +# +# Translators: +# Peter Hageman , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-27 04:44+0000\n" +"PO-Revision-Date: 2017-05-27 04:44+0000\n" +"Last-Translator: Peter Hageman , 2017\n" +"Language-Team: Dutch (Netherlands) (https://www.transifex.com/oca/" +"teams/23907/nl_NL/)\n" +"Language: nl_NL\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__active +msgid "Active" +msgstr "" + +#. module: product_state +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +msgid "Code" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__create_uid +msgid "Created by" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__create_date +msgid "Created on" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__default +msgid "Default state" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__description +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +msgid "Description" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__display_name +msgid "Display Name" +msgstr "" + +#. module: product_state +#: model:product.state,name:product_state.product_state_end +msgid "End of Lifecycle" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__id +msgid "ID" +msgstr "" + +#. module: product_state +#: model:product.state,name:product_state.product_state_draft +msgid "In Development" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__write_date +msgid "Last Updated on" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__name +msgid "Name" +msgstr "" + +#. module: product_state +#: model:product.state,name:product_state.product_state_sellable +msgid "Normal" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__products_count +msgid "Number of products" +msgstr "" + +#. module: product_state +#: model:product.state,name:product_state.product_state_obsolete +msgid "Obsolete" +msgstr "" + +#. module: product_state +#: model:ir.model,name:product_state.model_product_template +msgid "Product" +msgstr "" + +#. module: product_state +#: model:ir.actions.act_window,name:product_state.action_open_single_product_state +#: model:ir.model,name:product_state.model_product_state +#: model_terms:ir.ui.view,arch_db:product_state.product_state_search_form_view +#, fuzzy +msgid "Product State" +msgstr "Productsjabloon" + +#. module: product_state +#: model:ir.model.constraint,message:product_state.constraint_product_state_code_unique +msgid "Product State Code must be unique." +msgstr "" + +#. module: product_state +#: model:res.groups,name:product_state.group_product_state_manager +msgid "Product State Manager" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_product__state +#: model:ir.model.fields,field_description:product_state.field_product_template__state +#, fuzzy +msgid "Product Status" +msgstr "Productsjabloon" + +#. module: product_state +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_kanban +msgid "Products" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,help:product_state.field_product_product__product_state_id +#: model:ir.model.fields,help:product_state.field_product_template__product_state_id +msgid "Select a state for this product" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__sequence +msgid "Sequence" +msgstr "" + +#. module: product_state +#: model:ir.actions.act_window,name:product_state.action_product_state +#: model:ir.model.fields,field_description:product_state.field_product_product__product_state_id +#: model:ir.model.fields,field_description:product_state.field_product_template__product_state_id +#: model_terms:ir.ui.view,arch_db:product_state.view_product_template_search_state +msgid "State" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__code +msgid "State Code" +msgstr "" + +#. module: product_state +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +msgid "State Name" +msgstr "" + +#. module: product_state +#: model:ir.actions.act_window,name:product_state.action_open_state_products +#: model:ir.model.fields,field_description:product_state.field_product_state__product_ids +msgid "State Products" +msgstr "" + +#. module: product_state +#. odoo-python +#: code:addons/product_state/models/product_template.py:0 +msgid "The product state code %(product_state)s could not be found." +msgstr "" + +#. module: product_state +#. odoo-python +#: code:addons/product_state/models/product_state.py:0 +msgid "There should be only one default state" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,help:product_state.field_product_state__sequence +msgid "Used to order the States" +msgstr "" + +#, fuzzy +#~ msgid "Product States" +#~ msgstr "Productsjabloon" + +#~ msgid "Product Template" +#~ msgstr "Productsjabloon" + +#, fuzzy +#~ msgid "product.state" +#~ msgstr "Productsjabloon" diff --git a/product_state/i18n/product_state.pot b/product_state/i18n/product_state.pot new file mode 100644 index 000000000..1e88d5da6 --- /dev/null +++ b/product_state/i18n/product_state.pot @@ -0,0 +1,181 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_state +# +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: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__active +msgid "Active" +msgstr "" + +#. module: product_state +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +msgid "Code" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__create_uid +msgid "Created by" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__create_date +msgid "Created on" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__default +msgid "Default state" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__description +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +msgid "Description" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__display_name +msgid "Display Name" +msgstr "" + +#. module: product_state +#: model:product.state,name:product_state.product_state_end +msgid "End of Lifecycle" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__id +msgid "ID" +msgstr "" + +#. module: product_state +#: model:product.state,name:product_state.product_state_draft +msgid "In Development" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__write_date +msgid "Last Updated on" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__name +msgid "Name" +msgstr "" + +#. module: product_state +#: model:product.state,name:product_state.product_state_sellable +msgid "Normal" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__products_count +msgid "Number of products" +msgstr "" + +#. module: product_state +#: model:product.state,name:product_state.product_state_obsolete +msgid "Obsolete" +msgstr "" + +#. module: product_state +#: model:ir.model,name:product_state.model_product_template +msgid "Product" +msgstr "" + +#. module: product_state +#: model:ir.actions.act_window,name:product_state.action_open_single_product_state +#: model:ir.model,name:product_state.model_product_state +#: model_terms:ir.ui.view,arch_db:product_state.product_state_search_form_view +msgid "Product State" +msgstr "" + +#. module: product_state +#: model:ir.model.constraint,message:product_state.constraint_product_state_code_unique +msgid "Product State Code must be unique." +msgstr "" + +#. module: product_state +#: model:res.groups,name:product_state.group_product_state_manager +msgid "Product State Manager" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_product__state +#: model:ir.model.fields,field_description:product_state.field_product_template__state +msgid "Product Status" +msgstr "" + +#. module: product_state +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_kanban +msgid "Products" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,help:product_state.field_product_product__product_state_id +#: model:ir.model.fields,help:product_state.field_product_template__product_state_id +msgid "Select a state for this product" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__sequence +msgid "Sequence" +msgstr "" + +#. module: product_state +#: model:ir.actions.act_window,name:product_state.action_product_state +#: model:ir.model.fields,field_description:product_state.field_product_product__product_state_id +#: model:ir.model.fields,field_description:product_state.field_product_template__product_state_id +#: model_terms:ir.ui.view,arch_db:product_state.view_product_template_search_state +msgid "State" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__code +msgid "State Code" +msgstr "" + +#. module: product_state +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +msgid "State Name" +msgstr "" + +#. module: product_state +#: model:ir.actions.act_window,name:product_state.action_open_state_products +#: model:ir.model.fields,field_description:product_state.field_product_state__product_ids +msgid "State Products" +msgstr "" + +#. module: product_state +#. odoo-python +#: code:addons/product_state/models/product_template.py:0 +msgid "The product state code %(product_state)s could not be found." +msgstr "" + +#. module: product_state +#. odoo-python +#: code:addons/product_state/models/product_state.py:0 +msgid "There should be only one default state" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,help:product_state.field_product_state__sequence +msgid "Used to order the States" +msgstr "" diff --git a/product_state/i18n/pt.po b/product_state/i18n/pt.po new file mode 100644 index 000000000..98af70474 --- /dev/null +++ b/product_state/i18n/pt.po @@ -0,0 +1,199 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_state +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2020-03-23 14:13+0000\n" +"Last-Translator: Pedro Castro Silva \n" +"Language-Team: none\n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 3.10\n" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__active +msgid "Active" +msgstr "" + +#. module: product_state +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +msgid "Code" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__create_uid +msgid "Created by" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__create_date +msgid "Created on" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__default +msgid "Default state" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__description +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +msgid "Description" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__display_name +msgid "Display Name" +msgstr "" + +#. module: product_state +#: model:product.state,name:product_state.product_state_end +msgid "End of Lifecycle" +msgstr "Fim de Ciclo de Vida" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__id +msgid "ID" +msgstr "" + +#. module: product_state +#: model:product.state,name:product_state.product_state_draft +msgid "In Development" +msgstr "Em Desenvolvimento" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__write_date +msgid "Last Updated on" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__name +msgid "Name" +msgstr "" + +#. module: product_state +#: model:product.state,name:product_state.product_state_sellable +msgid "Normal" +msgstr "Normal" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__products_count +msgid "Number of products" +msgstr "" + +#. module: product_state +#: model:product.state,name:product_state.product_state_obsolete +msgid "Obsolete" +msgstr "Obsoleto" + +#. module: product_state +#: model:ir.model,name:product_state.model_product_template +msgid "Product" +msgstr "" + +#. module: product_state +#: model:ir.actions.act_window,name:product_state.action_open_single_product_state +#: model:ir.model,name:product_state.model_product_state +#: model_terms:ir.ui.view,arch_db:product_state.product_state_search_form_view +#, fuzzy +msgid "Product State" +msgstr "Modelo de Produto" + +#. module: product_state +#: model:ir.model.constraint,message:product_state.constraint_product_state_code_unique +msgid "Product State Code must be unique." +msgstr "" + +#. module: product_state +#: model:res.groups,name:product_state.group_product_state_manager +msgid "Product State Manager" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_product__state +#: model:ir.model.fields,field_description:product_state.field_product_template__state +#, fuzzy +msgid "Product Status" +msgstr "Modelo de Produto" + +#. module: product_state +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_kanban +msgid "Products" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,help:product_state.field_product_product__product_state_id +#: model:ir.model.fields,help:product_state.field_product_template__product_state_id +msgid "Select a state for this product" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__sequence +msgid "Sequence" +msgstr "" + +#. module: product_state +#: model:ir.actions.act_window,name:product_state.action_product_state +#: model:ir.model.fields,field_description:product_state.field_product_product__product_state_id +#: model:ir.model.fields,field_description:product_state.field_product_template__product_state_id +#: model_terms:ir.ui.view,arch_db:product_state.view_product_template_search_state +#, fuzzy +msgid "State" +msgstr "Estado" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__code +msgid "State Code" +msgstr "" + +#. module: product_state +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +msgid "State Name" +msgstr "" + +#. module: product_state +#: model:ir.actions.act_window,name:product_state.action_open_state_products +#: model:ir.model.fields,field_description:product_state.field_product_state__product_ids +#, fuzzy +msgid "State Products" +msgstr "Estado" + +#. module: product_state +#. odoo-python +#: code:addons/product_state/models/product_template.py:0 +msgid "The product state code %(product_state)s could not be found." +msgstr "" + +#. module: product_state +#. odoo-python +#: code:addons/product_state/models/product_state.py:0 +msgid "There should be only one default state" +msgstr "" + +#. module: product_state +#: model:ir.model.fields,help:product_state.field_product_state__sequence +msgid "Used to order the States" +msgstr "" + +#, fuzzy +#~ msgid "Product States" +#~ msgstr "Modelo de Produto" + +#~ msgid "Product Template" +#~ msgstr "Modelo de Produto" + +#, fuzzy +#~ msgid "product.state" +#~ msgstr "Modelo de Produto" diff --git a/product_state/i18n/sl.po b/product_state/i18n/sl.po new file mode 100644 index 000000000..c714f6803 --- /dev/null +++ b/product_state/i18n/sl.po @@ -0,0 +1,199 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_state +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-01-27 03:49+0000\n" +"PO-Revision-Date: 2026-06-01 07:05+0000\n" +"Last-Translator: Matjaz Mozetic \n" +"Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/sl/)\n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || " +"n%100==4 ? 2 : 3;\n" +"X-Generator: Weblate 5.15.2\n" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__active +msgid "Active" +msgstr "Aktivno" + +#. module: product_state +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +msgid "Code" +msgstr "Koda" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__create_uid +msgid "Created by" +msgstr "Ustvaril" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__create_date +msgid "Created on" +msgstr "Ustvarjeno" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__default +msgid "Default state" +msgstr "Privzeto stanje" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__description +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +msgid "Description" +msgstr "Opis" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__display_name +msgid "Display Name" +msgstr "Prikazani naziv" + +#. module: product_state +#: model:product.state,name:product_state.product_state_end +msgid "End of Lifecycle" +msgstr "Konec življenjske dobe" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__id +msgid "ID" +msgstr "ID" + +#. module: product_state +#: model:product.state,name:product_state.product_state_draft +msgid "In Development" +msgstr "V razvoju" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__write_uid +msgid "Last Updated by" +msgstr "Zadnji posodobil" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__write_date +msgid "Last Updated on" +msgstr "Zadnjič posodobljeno" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__name +msgid "Name" +msgstr "Naziv" + +#. module: product_state +#: model:product.state,name:product_state.product_state_sellable +msgid "Normal" +msgstr "Običajno" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__products_count +msgid "Number of products" +msgstr "Število proizvodov" + +#. module: product_state +#: model:product.state,name:product_state.product_state_obsolete +msgid "Obsolete" +msgstr "Zastarelo" + +#. module: product_state +#: model:ir.model,name:product_state.model_product_template +msgid "Product" +msgstr "Proizvod" + +#. module: product_state +#: model:ir.actions.act_window,name:product_state.action_open_single_product_state +#: model:ir.model,name:product_state.model_product_state +#: model_terms:ir.ui.view,arch_db:product_state.product_state_search_form_view +msgid "Product State" +msgstr "Stanje proizvoda" + +#. module: product_state +#: model:ir.model.constraint,message:product_state.constraint_product_state_code_unique +msgid "Product State Code must be unique." +msgstr "Koda stanja proizvoda mora biti unikatna." + +#. module: product_state +#: model:res.groups,name:product_state.group_product_state_manager +msgid "Product State Manager" +msgstr "Upravitelj stanja proizvoda" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_product__state +#: model:ir.model.fields,field_description:product_state.field_product_template__state +msgid "Product Status" +msgstr "Status proizvoda" + +#. module: product_state +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_kanban +msgid "Products" +msgstr "Proizvodi" + +#. module: product_state +#: model:ir.model.fields,help:product_state.field_product_product__product_state_id +#: model:ir.model.fields,help:product_state.field_product_template__product_state_id +msgid "Select a state for this product" +msgstr "Izberite stanje za ta proizvod" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__sequence +msgid "Sequence" +msgstr "Zaporedje" + +#. module: product_state +#: model:ir.actions.act_window,name:product_state.action_product_state +#: model:ir.model.fields,field_description:product_state.field_product_product__product_state_id +#: model:ir.model.fields,field_description:product_state.field_product_template__product_state_id +#: model_terms:ir.ui.view,arch_db:product_state.view_product_template_search_state +msgid "State" +msgstr "Stanje" + +#. module: product_state +#: model:ir.model.fields,field_description:product_state.field_product_state__code +msgid "State Code" +msgstr "Koda stanja" + +#. module: product_state +#: model_terms:ir.ui.view,arch_db:product_state.view_product_state_form +msgid "State Name" +msgstr "Naziv stanja" + +#. module: product_state +#: model:ir.actions.act_window,name:product_state.action_open_state_products +#: model:ir.model.fields,field_description:product_state.field_product_state__product_ids +msgid "State Products" +msgstr "Stanje proizvodov" + +#. module: product_state +#. odoo-python +#: code:addons/product_state/models/product_template.py:0 +msgid "The product state code %(product_state)s could not be found." +msgstr "Koda stanja proizvoda %(product_state)s ni najdena." + +#. module: product_state +#. odoo-python +#: code:addons/product_state/models/product_state.py:0 +msgid "There should be only one default state" +msgstr "Moralo bi biti le eno privzeto stanje" + +#. module: product_state +#: model:ir.model.fields,help:product_state.field_product_state__sequence +msgid "Used to order the States" +msgstr "Uporablja se za urejanje stanj" + +#, fuzzy +#~ msgid "Product States" +#~ msgstr "Predloga proizvoda" + +#~ msgid "Product Template" +#~ msgstr "Predloga proizvoda" + +#, fuzzy +#~ msgid "product.state" +#~ msgstr "Predloga proizvoda" diff --git a/product_state/models/__init__.py b/product_state/models/__init__.py new file mode 100644 index 000000000..294a305eb --- /dev/null +++ b/product_state/models/__init__.py @@ -0,0 +1,4 @@ +# Copyright 2017 ACSONE SA/NV () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). +from . import product_state +from . import product_template diff --git a/product_state/models/product_state.py b/product_state/models/product_state.py new file mode 100644 index 000000000..6de3283bf --- /dev/null +++ b/product_state/models/product_state.py @@ -0,0 +1,46 @@ +# Copyright 2017 ACSONE SA/NV () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from odoo import api, fields, models +from odoo.exceptions import ValidationError + + +class ProductState(models.Model): + _name = "product.state" + _description = "Product State" + _order = "sequence, id" + + name = fields.Char(comodel_name="State Name", required=True, translate=True) + code = fields.Char(string="State Code", required=True) + sequence = fields.Integer(help="Used to order the States", default=25) + active = fields.Boolean(default=True) + description = fields.Text(translate=True) + product_ids = fields.One2many( + comodel_name="product.template", + inverse_name="product_state_id", + string="State Products", + ) + products_count = fields.Integer( + string="Number of products", + compute="_compute_products_count", + ) + default = fields.Boolean("Default state") + _code_unique = models.Constraint( + "UNIQUE(code)", "Product State Code must be unique." + ) + + @api.depends("product_ids") + def _compute_products_count(self): + data = self.env["product.template"]._read_group( + [("product_state_id", "in", self.ids)], + ["product_state_id"], + ["__count"], + ) + mapped_data = {state.id: count for state, count in data} + for state in self: + state.products_count = mapped_data.get(state.id, 0) + + @api.constrains("default") + def _check_default(self): + if self.search_count([("default", "=", True)]) > 1: + raise ValidationError(self.env._("There should be only one default state")) diff --git a/product_state/models/product_template.py b/product_state/models/product_template.py new file mode 100644 index 000000000..32a6c07e3 --- /dev/null +++ b/product_state/models/product_template.py @@ -0,0 +1,67 @@ +# Copyright 2017-2021 ACSONE SA/NV () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from odoo import api, fields, models +from odoo.exceptions import UserError + + +class ProductTemplate(models.Model): + _inherit = "product.template" + + state = fields.Char( + string="Product Status", + index=True, + compute="_compute_product_state", + inverse="_inverse_product_state", + readonly=True, + store=True, + ) + product_state_id = fields.Many2one( + comodel_name="product.state", + string="State", + help="Select a state for this product", + group_expand="_read_group_state_id", + inverse="_inverse_product_state_id", + default=lambda self: self._get_default_product_state().id, + index=True, + tracking=10, + copy=False, + ) + + def _inverse_product_state_id(self): + """ + Allow to ease triggering other stuff when product state changes + without a write() + """ + + @api.model + def _get_default_product_state(self): + return self.env["product.state"].search([("default", "=", True)], limit=1) + + @api.depends("product_state_id") + def _compute_product_state(self): + for product_tmpl in self: + product_tmpl.state = product_tmpl.product_state_id.code + + def _inverse_product_state(self): + for product_tmpl in self: + self._set_product_state_id(product_tmpl) + + # This method can be called by variant so the record is either + # product.template or product.product + @api.model + def _set_product_state_id(self, record): + """The record param is for similar state field at product.product model.""" + ProductState = record.env["product.state"] + product_state = ProductState.search([("code", "=", record.state)], limit=1) + if record.state and not product_state: + msg = self.env._( + "The product state code %(product_state)s could not be found.", + product_state=record.state, + ) + raise UserError(msg) + record.product_state_id = product_state.id + + @api.model + def _read_group_state_id(self, states, domain): + return states.search([]) diff --git a/account_move_tier_validation/pyproject.toml b/product_state/pyproject.toml similarity index 100% rename from account_move_tier_validation/pyproject.toml rename to product_state/pyproject.toml diff --git a/product_state/readme/CONTRIBUTORS.md b/product_state/readme/CONTRIBUTORS.md new file mode 100644 index 000000000..389f2d52e --- /dev/null +++ b/product_state/readme/CONTRIBUTORS.md @@ -0,0 +1,11 @@ +- Cedric Pigeon \<\> +- Alexandre Saunier \<\> +- Nikul Chaudhary \<\> +- Eduardo Magdalena \<\> (C2i Change 2 improve + ) +- Andrii Skrypka \<\> +- Denis Roussel \<\> +- Riccardo Fresco \<\> +- Nils Coenen \<\> +- [Trobz](https://trobz.com): + - Tuan Nguyen \<\> diff --git a/product_state/readme/CREDITS.md b/product_state/readme/CREDITS.md new file mode 100644 index 000000000..a2a771b1c --- /dev/null +++ b/product_state/readme/CREDITS.md @@ -0,0 +1 @@ +The migration of this module from 17.0 to 18.0 was financially supported by Camptocamp. \ No newline at end of file diff --git a/product_state/readme/DESCRIPTION.md b/product_state/readme/DESCRIPTION.md new file mode 100644 index 000000000..7ff986a25 --- /dev/null +++ b/product_state/readme/DESCRIPTION.md @@ -0,0 +1,7 @@ +This module introduces the state field on product template and allows +simple product life cycle: + +- draft: In Development +- sellable: Normal +- end: End of Lifecycle +- obsolete: Obsolete diff --git a/product_state/readme/USAGE.md b/product_state/readme/USAGE.md new file mode 100644 index 000000000..3d736a470 --- /dev/null +++ b/product_state/readme/USAGE.md @@ -0,0 +1,5 @@ +To add a product to a state: + +1. Go to the product itself and edit. +2. You can select the desired status in the list of buttons above the + form. diff --git a/product_state/security/ir.access.csv b/product_state/security/ir.access.csv new file mode 100644 index 000000000..2a9962241 --- /dev/null +++ b/product_state/security/ir.access.csv @@ -0,0 +1,4 @@ +"id","name","model_id","group_id/id","operation","domain" +"access_product_state_manager","product.state","product.state","group_product_state_manager","crud", +"access_product_state_internal_user","product.state.internal.user","product.state","base.group_user","r", +"access_product_state_public","product.state.public","product.state","base.group_public","r", diff --git a/product_state/security/product_state_security.xml b/product_state/security/product_state_security.xml new file mode 100644 index 000000000..840b1119b --- /dev/null +++ b/product_state/security/product_state_security.xml @@ -0,0 +1,6 @@ + + + + Product State Manager + + diff --git a/account_move_tier_validation/static/description/icon.png b/product_state/static/description/icon.png similarity index 100% rename from account_move_tier_validation/static/description/icon.png rename to product_state/static/description/icon.png diff --git a/base_tier_validation_server_action/static/description/index.html b/product_state/static/description/index.html similarity index 71% rename from base_tier_validation_server_action/static/description/index.html rename to product_state/static/description/index.html index 7eed50f35..b18c3c01a 100644 --- a/base_tier_validation_server_action/static/description/index.html +++ b/product_state/static/description/index.html @@ -3,7 +3,7 @@ -README.rst +Product State -
+
+

Product State

- - -Odoo Community Association - -
-

Base Tier Validation - Server Action

-

Beta License: AGPL-3 OCA/tier-validation Translate me on Weblate Try me on Runboat

-

This module add option to call “Server Action” when a tier definition is -approved or rejected

+

Beta License: AGPL-3 OCA/product-attribute Translate me on Weblate Try me on Runboat

+

This module introduces the state field on product template and allows +simple product life cycle:

+
    +
  • draft: In Development
  • +
  • sellable: Normal
  • +
  • end: End of Lifecycle
  • +
  • obsolete: Obsolete
  • +

Table of contents

-
-

Configuration

-

On each Tier Definition

-
    -
  • Choose server action you want to call as soon this definition is -approved or rejected
  • -
  • Select “Auto Validate”, if you want this definition to get validated -by cron job based on “if pass condition” criteria,
      -
    • If no user specified, use job’s system user to validate
    • -
    • If 1 user matched as reviewer, use the user to validate
    • -
    • If > 1 user matched as reviewer, do not auto validate
    • -
    -
  • -
+
+

Usage

+

To add a product to a state:

+
    +
  1. Go to the product itself and edit.
  2. +
  3. You can select the desired status in the list of buttons above the +form.
  4. +
-

Bug Tracker

-

Bugs are tracked on GitHub Issues. +

Bug Tracker

+

Bugs are tracked on GitHub 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.

+feedback.

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

-

Credits

+

Credits

-

Authors

+

Authors

    -
  • Ecosoft
  • +
  • ACSONE SA/NV
-

Contributors

+

Contributors

+
+

Other credits

+

The migration of this module from 17.0 to 18.0 was financially supported +by Camptocamp.

+
-

Maintainers

+

Maintainers

This module is maintained by the OCA.

Odoo Community Association @@ -437,12 +450,11 @@

Maintainers

mission is to support the collaborative development of Odoo features and promote its widespread use.

Current maintainer:

-

kittiu

-

This module is part of the OCA/tier-validation project on GitHub.

+

emagdalenaC2i

+

This module is part of the OCA/product-attribute project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

-
diff --git a/purchase_request_tier_validation/__init__.py b/product_state/tests/__init__.py similarity index 66% rename from purchase_request_tier_validation/__init__.py rename to product_state/tests/__init__.py index 31660d6a9..cf5f2559a 100644 --- a/purchase_request_tier_validation/__init__.py +++ b/product_state/tests/__init__.py @@ -1,3 +1,2 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from . import models +from . import test_product_state diff --git a/product_state/tests/test_product_state.py b/product_state/tests/test_product_state.py new file mode 100644 index 000000000..453f2cab9 --- /dev/null +++ b/product_state/tests/test_product_state.py @@ -0,0 +1,102 @@ +# Copyright 2021 ACSONE SA/NV () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). +import logging + +from odoo.exceptions import UserError, ValidationError +from odoo.tests.common import TransactionCase + +_logger = logging.getLogger(__name__) + + +class TestProductState(TransactionCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.ProductState = cls.env["product.state"] + cls.state = cls.ProductState.create({"name": "State Name", "code": "Code"}) + cls.product_obj = cls.env["product.template"] + cls.product_1 = cls.env.ref("product.product_product_4_product_template") + + @classmethod + def _create_product(cls, state=None): + vals = { + "name": "Product Test for State", + } + if state: + vals.update({"product_state_id": state.id}) + cls.product = cls.product_obj.create(vals) + + def test_01_product_state(self): + """ + Check if existing product has the default value (see init_hook) + Check if new state has no products + Create a product, check if it has the default state + Create a product with state + Check if new state has 1 product + """ + self.assertTrue(self.product_1.product_state_id) + self.assertFalse( + self.state.products_count, + ) + self._create_product() + self.assertEqual( + self.env.ref("product_state.product_state_sellable"), + self.product.product_state_id, + ) + self._create_product(self.state) + self.assertEqual( + self.state, + self.product.product_state_id, + ) + self.assertEqual( + 1, + self.state.products_count, + ) + + def test_02_set_product_state(self): + """ + Create product, it has default state + Then, update the state + It should have the existing one (Code) + """ + self._create_product() + self.assertEqual( + self.env.ref("product_state.product_state_sellable"), + self.product.product_state_id, + ) + self.product.state = "Code" + self.assertEqual( + self.state, + self.product.product_state_id, + ) + + def test_03_set_constrains_product_state(self): + """ + Create another default state, + It should have the existing only one default state at time + """ + with self.assertRaises(ValidationError) as cm: + self.env["product.state"].create( + {"name": "Default State 2", "code": "df2", "default": True} + ) + wn_expect = cm.exception.args[0] + self.assertEqual("There should be only one default state", wn_expect) + + def test_04_invalid_state(self): + self._create_product() + with self.assertRaises(UserError): + self.product.state = "new_code" + + def test_05_copy(self): + """ + Create product with non-default state. + Copy product. + The copy should have the default state. + """ + self._create_product() + self.product.state = "Code" + copied_product = self.product.copy() + self.assertEqual( + self.env.ref("product_state.product_state_sellable"), + copied_product.product_state_id, + ) diff --git a/product_state/views/product_state_views.xml b/product_state/views/product_state_views.xml new file mode 100644 index 000000000..9617e6bb5 --- /dev/null +++ b/product_state/views/product_state_views.xml @@ -0,0 +1,102 @@ + + + product.state.search.form + product.state + + + + + + + + Product State + ir.actions.act_window + product.state + kanban,form,list + {} + [('id', '=', product_state_id)] + current + + + product.state.form + product.state + +
+ +
+ +
+
+
+ + + + + + + + +
+
+
+
+ + product.state.tree + product.state + + + + + + + + + + product.state.kanban + product.state + + + + + + + +
+

+ +

+ +
+
+
+
+
+
+ + State + product.state + kanban,form,list + +
diff --git a/product_state/views/product_template_views.xml b/product_state/views/product_template_views.xml new file mode 100644 index 000000000..98a6a3911 --- /dev/null +++ b/product_state/views/product_template_views.xml @@ -0,0 +1,54 @@ + + + State Products + ir.actions.act_window + product.template + kanban,form,list + {} + [('product_state_id', '=', id)] + + + product.template.search.state + product.template + + + + + + + + + + + product.template.common.form + product.template + + + +
+ +
+
+
+
+ + product.template.tree (product_state_id) + product.template + + 50 + + + + + + +
diff --git a/product_tier_validation/README.rst b/product_tier_validation/README.rst new file mode 100644 index 000000000..d9d4e11e2 --- /dev/null +++ b/product_tier_validation/README.rst @@ -0,0 +1,124 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + +======================= +Product Tier Validation +======================= + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:bbedc7f58c2fd0be654b348e29bd33fb90f048595e38c5b8a83f03b6adb40163 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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%2Fproduct--attribute-lightgray.png?logo=github + :target: https://github.com/OCA/product-attribute/tree/18.0/product_tier_validation + :alt: OCA/product-attribute +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/product-attribute-18-0/product-attribute-18-0-product_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/product-attribute&target_branch=18.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +Adds an approval workflow to Products. The default rule requires new +Product to be approved before they can be used. + +For this, the new Product record is kept as "Archived" until it is +approved. + +**Table of contents** + +.. contents:: + :local: + +Installation +============ + +This module depends on ``base_tier_validation``. You can find it at +`OCA/server-ux `__ + +Usage +===== + +A regular user creates a new Product and sends it for approval: + +1. Create a Product triggering at least one "Tier Definition". Product + will be in In Development state and marked as Archived until + approved. +2. Click on *Request Validation* button. +3. In the *Reviews* section, at the bottom of the form, inspect the + pending reviews and their status. + +The approver reviews Products to approve: + +1. Now select the filter "Needs my Approval" from Product list view. +2. Open the Product form to approve. It will display a "This Records + needs to be validated" banner, with "Validate" and "Reject" options. +3. The approver can change the state to "Normal". This will + automatically unarchive the record and make it available to be used. + +The Approve/Reject actions do not automatically change the State. This +could be a future improvement. + +Bug Tracker +=========== + +Bugs are tracked on `GitHub 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 `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +------- + +* Open Source Integrators + +Contributors +------------ + +- `Open Source Integrators `__. + + - Chandresh Thakkar + - Daniel Reis + +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-dreispt| image:: https://github.com/dreispt.png?size=40px + :target: https://github.com/dreispt + :alt: dreispt + +Current `maintainer `__: + +|maintainer-dreispt| + +This module is part of the `OCA/product-attribute `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/base_tier_validation_server_action/__init__.py b/product_tier_validation/__init__.py similarity index 67% rename from base_tier_validation_server_action/__init__.py rename to product_tier_validation/__init__.py index 31660d6a9..c68fd2bbe 100644 --- a/base_tier_validation_server_action/__init__.py +++ b/product_tier_validation/__init__.py @@ -1,3 +1,4 @@ +# Copyright 2021 Open Source Integrators # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). from . import models diff --git a/product_tier_validation/__manifest__.py b/product_tier_validation/__manifest__.py new file mode 100644 index 000000000..58cba35d8 --- /dev/null +++ b/product_tier_validation/__manifest__.py @@ -0,0 +1,19 @@ +# Copyright 2021 Open Source Integrators +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +{ + "name": "Product Tier Validation", + "summary": "Support a tier validation process for Products", + "version": "18.0.1.0.0", + "website": "https://github.com/OCA/product-attribute", + "category": "Products", + "author": "Open Source Integrators, Odoo Community Association (OCA)", + "license": "AGPL-3", + "installable": True, + "maintainers": ["dreispt"], + "development_status": "Beta", + "depends": ["product_state", "base_tier_validation"], + "data": [ + "data/tier_definition.xml", + "views/product_template_view.xml", + ], +} diff --git a/product_tier_validation/data/tier_definition.xml b/product_tier_validation/data/tier_definition.xml new file mode 100644 index 000000000..9f95ac4cf --- /dev/null +++ b/product_tier_validation/data/tier_definition.xml @@ -0,0 +1,13 @@ + + + Product Validation + + group + + domain + ["|",["active","=",True],["active","=",False]] + False + + diff --git a/product_tier_validation/i18n/es.po b/product_tier_validation/i18n/es.po new file mode 100644 index 000000000..68ac7399b --- /dev/null +++ b/product_tier_validation/i18n/es.po @@ -0,0 +1,135 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_tier_validation +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2024-03-23 10:35+0000\n" +"Last-Translator: Ivorra78 \n" +"Language-Team: none\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" + +#. module: product_tier_validation +#: model:ir.actions.server,name:product_tier_validation.action_accept_product_validations +msgid "Accept Validations" +msgstr "Aceptar Validaciones" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__can_review +msgid "Can Review" +msgstr "Puede Revisar" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__display_name +#: model:ir.model.fields,field_description:product_tier_validation.field_tier_definition__display_name +msgid "Display Name" +msgstr "Mostrar Nombre" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__has_comment +msgid "Has Comment" +msgstr "Tiene Comentario" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__id +#: model:ir.model.fields,field_description:product_tier_validation.field_tier_definition__id +msgid "ID" +msgstr "ID" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template____last_update +#: model:ir.model.fields,field_description:product_tier_validation.field_tier_definition____last_update +msgid "Last Modified on" +msgstr "Última Modificación el" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__need_validation +msgid "Need Validation" +msgstr "Necesita Validación" + +#. module: product_tier_validation +#: model_terms:ir.ui.view,arch_db:product_tier_validation.product_form_tier_filter +msgid "Needs an Approval" +msgstr "Necesita una Aprobación" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__next_review +msgid "Next Review" +msgstr "Siguiente Revisión" + +#. module: product_tier_validation +#: model:ir.model,name:product_tier_validation.model_product_template +msgid "Product Template" +msgstr "Plantilla del Producto" + +#. module: product_tier_validation +#: model:tier.definition,name:product_tier_validation.product_tier_definition +msgid "Product Validation" +msgstr "Validación de Producto" + +#. module: product_tier_validation +#: model_terms:ir.ui.view,arch_db:product_tier_validation.product_form_tier_filter +msgid "Product(s) to Approve" +msgstr "Producto(s) a Aprobar" + +#. module: product_tier_validation +#: model:ir.actions.server,name:product_tier_validation.action_reject_product_validations +msgid "Reject Validations" +msgstr "Rechazar Validaciones" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__rejected +msgid "Rejected" +msgstr "Rechazado/a" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__rejected_message +msgid "Rejected Message" +msgstr "Mensaje Rechazado" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__reviewer_ids +msgid "Reviewers" +msgstr "Revisores" + +#. module: product_tier_validation +#: model:ir.model,name:product_tier_validation.model_tier_definition +msgid "Tier Definition" +msgstr "Definición del Nivel" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__tier_validation_before_write +msgid "Tier Validation Before Write" +msgstr "Validación de Niveles Antes de la Escritura" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__to_validate_message +msgid "To Validate Message" +msgstr "Para Validar el Mensaje" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__validated +msgid "Validated" +msgstr "Validado" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__validated_message +msgid "Validated Message" +msgstr "Mensaje Validado" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__validation_status +msgid "Validation Status" +msgstr "Estado de Validación" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__review_ids +msgid "Validations" +msgstr "Validaciones" diff --git a/product_tier_validation/i18n/fr.po b/product_tier_validation/i18n/fr.po new file mode 100644 index 000000000..cc5a14a26 --- /dev/null +++ b/product_tier_validation/i18n/fr.po @@ -0,0 +1,137 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_tier_validation +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-01-09 11:25+0000\n" +"PO-Revision-Date: 2024-01-09 12:26+0100\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 3.4.2\n" + +#. module: product_tier_validation +#: model:ir.actions.server,name:product_tier_validation.action_accept_product_validations +msgid "Accept Validations" +msgstr "Accepter les validations" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__can_review +msgid "Can Review" +msgstr "" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__display_name +#: model:ir.model.fields,field_description:product_tier_validation.field_tier_definition__display_name +msgid "Display Name" +msgstr "Nom affiché" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__has_comment +msgid "Has Comment" +msgstr "" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__id +#: model:ir.model.fields,field_description:product_tier_validation.field_tier_definition__id +msgid "ID" +msgstr "Identifiant" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template____last_update +#: model:ir.model.fields,field_description:product_tier_validation.field_tier_definition____last_update +msgid "Last Modified on" +msgstr "Dernière modification le" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__need_validation +msgid "Need Validation" +msgstr "" + +#. module: product_tier_validation +#: model_terms:ir.ui.view,arch_db:product_tier_validation.product_form_tier_filter +msgid "Needs an Approval" +msgstr "" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__next_review +msgid "Next Review" +msgstr "" + +#. module: product_tier_validation +#: model:ir.model,name:product_tier_validation.model_product_template +msgid "Product Template" +msgstr "Modèle d'article" + +#. module: product_tier_validation +#: model:tier.definition,name:product_tier_validation.product_tier_definition +msgid "Product Validation" +msgstr "" + +#. module: product_tier_validation +#: model_terms:ir.ui.view,arch_db:product_tier_validation.product_form_tier_filter +msgid "Product(s) to Approve" +msgstr "" + +#. module: product_tier_validation +#: model:ir.actions.server,name:product_tier_validation.action_reject_product_validations +msgid "Reject Validations" +msgstr "Rejeter les validations" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__rejected +msgid "Rejected" +msgstr "" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__rejected_message +msgid "Rejected Message" +msgstr "" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__reviewer_ids +msgid "Reviewers" +msgstr "" + +#. module: product_tier_validation +#: model:ir.model,name:product_tier_validation.model_tier_definition +msgid "Tier Definition" +msgstr "" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__to_validate_message +msgid "To Validate Message" +msgstr "" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__validated +msgid "Validated" +msgstr "" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__validated_message +msgid "Validated Message" +msgstr "" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__validation_status +msgid "Validation Status" +msgstr "" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__review_ids +msgid "Validations" +msgstr "" + +#. module: product_tier_validation +#: code:addons/product_tier_validation/models/product_template.py:0 +#, python-format +msgid "Wrong configuration of '_state_from' in product.state" +msgstr "" diff --git a/product_tier_validation/i18n/it.po b/product_tier_validation/i18n/it.po new file mode 100644 index 000000000..3e9683925 --- /dev/null +++ b/product_tier_validation/i18n/it.po @@ -0,0 +1,135 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_tier_validation +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2024-03-18 09:36+0000\n" +"Last-Translator: mymage \n" +"Language-Team: none\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" + +#. module: product_tier_validation +#: model:ir.actions.server,name:product_tier_validation.action_accept_product_validations +msgid "Accept Validations" +msgstr "Accetta validazioni" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__can_review +msgid "Can Review" +msgstr "Può revisionare" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__display_name +#: model:ir.model.fields,field_description:product_tier_validation.field_tier_definition__display_name +msgid "Display Name" +msgstr "Nome visualizzato" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__has_comment +msgid "Has Comment" +msgstr "Ha commenti" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__id +#: model:ir.model.fields,field_description:product_tier_validation.field_tier_definition__id +msgid "ID" +msgstr "ID" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template____last_update +#: model:ir.model.fields,field_description:product_tier_validation.field_tier_definition____last_update +msgid "Last Modified on" +msgstr "Ultima modifica il" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__need_validation +msgid "Need Validation" +msgstr "Richiede conferma" + +#. module: product_tier_validation +#: model_terms:ir.ui.view,arch_db:product_tier_validation.product_form_tier_filter +msgid "Needs an Approval" +msgstr "Richiede approvazione" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__next_review +msgid "Next Review" +msgstr "Prossima revisione" + +#. module: product_tier_validation +#: model:ir.model,name:product_tier_validation.model_product_template +msgid "Product Template" +msgstr "Modello prodotto" + +#. module: product_tier_validation +#: model:tier.definition,name:product_tier_validation.product_tier_definition +msgid "Product Validation" +msgstr "Verifica prodotto" + +#. module: product_tier_validation +#: model_terms:ir.ui.view,arch_db:product_tier_validation.product_form_tier_filter +msgid "Product(s) to Approve" +msgstr "Prodotto(i) da verificare" + +#. module: product_tier_validation +#: model:ir.actions.server,name:product_tier_validation.action_reject_product_validations +msgid "Reject Validations" +msgstr "Rifuita validazioni" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__rejected +msgid "Rejected" +msgstr "Respinto" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__rejected_message +msgid "Rejected Message" +msgstr "Messaggio di rifiuto" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__reviewer_ids +msgid "Reviewers" +msgstr "Revisori" + +#. module: product_tier_validation +#: model:ir.model,name:product_tier_validation.model_tier_definition +msgid "Tier Definition" +msgstr "Definizione livello" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__tier_validation_before_write +msgid "Tier Validation Before Write" +msgstr "Validazione livello prima della scrittura" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__to_validate_message +msgid "To Validate Message" +msgstr "Messaggio per 'Da validare'" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__validated +msgid "Validated" +msgstr "Validato" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__validated_message +msgid "Validated Message" +msgstr "Messaggio per 'Validata'" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__validation_status +msgid "Validation Status" +msgstr "Stato validazione" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__review_ids +msgid "Validations" +msgstr "Validazioni" diff --git a/product_tier_validation/i18n/product_tier_validation.pot b/product_tier_validation/i18n/product_tier_validation.pot new file mode 100644 index 000000000..bbf8243e2 --- /dev/null +++ b/product_tier_validation/i18n/product_tier_validation.pot @@ -0,0 +1,119 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_tier_validation +# +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: product_tier_validation +#: model:ir.actions.server,name:product_tier_validation.action_accept_product_validations +msgid "Accept Validations" +msgstr "" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__can_review +msgid "Can Review" +msgstr "" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__has_comment +msgid "Has Comment" +msgstr "" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__hide_reviews +msgid "Hide Reviews" +msgstr "" + +#. module: product_tier_validation +#: model:ir.model.fields,help:product_tier_validation.field_product_template__has_comment +msgid "If set, Allow the reviewer to leave a comment on the review." +msgstr "" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__need_validation +msgid "Need Validation" +msgstr "" + +#. module: product_tier_validation +#: model_terms:ir.ui.view,arch_db:product_tier_validation.product_form_tier_filter +msgid "Needs an Approval" +msgstr "" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__next_review +msgid "Next Review" +msgstr "" + +#. module: product_tier_validation +#: model:ir.model,name:product_tier_validation.model_product_template +msgid "Product" +msgstr "" + +#. module: product_tier_validation +#: model:tier.definition,name:product_tier_validation.product_tier_definition +msgid "Product Validation" +msgstr "" + +#. module: product_tier_validation +#: model_terms:ir.ui.view,arch_db:product_tier_validation.product_form_tier_filter +msgid "Product(s) to Approve" +msgstr "" + +#. module: product_tier_validation +#: model:ir.actions.server,name:product_tier_validation.action_reject_product_validations +msgid "Reject Validations" +msgstr "" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__rejected +msgid "Rejected" +msgstr "" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__rejected_message +msgid "Rejected Message" +msgstr "" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__reviewer_ids +msgid "Reviewers" +msgstr "" + +#. module: product_tier_validation +#: model:ir.model,name:product_tier_validation.model_tier_definition +msgid "Tier Definition" +msgstr "" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__to_validate_message +msgid "To Validate Message" +msgstr "" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__validated +msgid "Validated" +msgstr "" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__validated_message +msgid "Validated Message" +msgstr "" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__validation_status +msgid "Validation Status" +msgstr "" + +#. module: product_tier_validation +#: model:ir.model.fields,field_description:product_tier_validation.field_product_template__review_ids +msgid "Validations" +msgstr "" diff --git a/base_tier_validation_server_action/models/__init__.py b/product_tier_validation/models/__init__.py similarity index 57% rename from base_tier_validation_server_action/models/__init__.py rename to product_tier_validation/models/__init__.py index 98c81adcb..8f4c7215a 100644 --- a/base_tier_validation_server_action/models/__init__.py +++ b/product_tier_validation/models/__init__.py @@ -1,4 +1,5 @@ +# Copyright 2021 Open Source Integrators # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from . import product_template from . import tier_definition -from . import tier_validation diff --git a/product_tier_validation/models/product_template.py b/product_tier_validation/models/product_template.py new file mode 100644 index 000000000..e5d7bd3dd --- /dev/null +++ b/product_tier_validation/models/product_template.py @@ -0,0 +1,23 @@ +# Copyright 2021 Open Source Integrators +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import models + + +class ProductTemplate(models.Model): + _name = "product.template" + _inherit = ["product.template", "tier.validation"] + _tier_validation_manual_config = False + _state_to = ["sellable"] + + def write(self, vals): + # Tier Validation does not work with Stages, only States :-( + # So, signal state transition by adding it to the vals + if "product_state_id" in vals: + stage_id = vals.get("product_state_id") + stage = self.env["product.state"].browse(stage_id) + vals["state"] = stage.code # yes, "code" is used to represent a "state" + res = super().write(vals) + if "product_state_id" in vals: + self.restart_validation() + return res diff --git a/purchase_request_tier_validation/models/tier_definition.py b/product_tier_validation/models/tier_definition.py similarity index 79% rename from purchase_request_tier_validation/models/tier_definition.py rename to product_tier_validation/models/tier_definition.py index 8f575d3ab..edabdeaf9 100644 --- a/purchase_request_tier_validation/models/tier_definition.py +++ b/product_tier_validation/models/tier_definition.py @@ -1,5 +1,6 @@ -# Copyright 2019-2020 ForgeFlow S.L. +# Copyright 2021 Open Source Integrators # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + from odoo import api, models @@ -9,5 +10,5 @@ class TierDefinition(models.Model): @api.model def _get_tier_validation_model_names(self): res = super()._get_tier_validation_model_names() - res.append("purchase.request") + res.append("product.template") return res diff --git a/base_tier_validation_confirm_auth/pyproject.toml b/product_tier_validation/pyproject.toml similarity index 100% rename from base_tier_validation_confirm_auth/pyproject.toml rename to product_tier_validation/pyproject.toml diff --git a/product_tier_validation/readme/CONFIGURATION.rst b/product_tier_validation/readme/CONFIGURATION.rst new file mode 100644 index 000000000..db3824a36 --- /dev/null +++ b/product_tier_validation/readme/CONFIGURATION.rst @@ -0,0 +1,13 @@ +The approval rules can be configured to suit particular use cases. +A default validation rule is provided out of the box, +that can be used as a starting point fot this configuration. + +This configuration is done at +*Settings > Technical > Tier Validations > Tier Definition*. + +Note that, since Product start as archived records, +the *Definition Domain* must include ``"|",["active","=",True],["active","=",False]``. +Otherwise the validation rule won't apply correctly in new records. + +Setting new Products inactive can be disabled, +by removing the "draft" code from the initial Product State. diff --git a/product_tier_validation/readme/CONTRIBUTORS.md b/product_tier_validation/readme/CONTRIBUTORS.md new file mode 100644 index 000000000..1e8939bda --- /dev/null +++ b/product_tier_validation/readme/CONTRIBUTORS.md @@ -0,0 +1,3 @@ +- [Open Source Integrators](https://opensourceintegrators.com). + - Chandresh Thakkar \<\> + - Daniel Reis \<\> diff --git a/product_tier_validation/readme/DESCRIPTION.md b/product_tier_validation/readme/DESCRIPTION.md new file mode 100644 index 000000000..bcb34ba85 --- /dev/null +++ b/product_tier_validation/readme/DESCRIPTION.md @@ -0,0 +1,5 @@ +Adds an approval workflow to Products. The default rule requires new +Product to be approved before they can be used. + +For this, the new Product record is kept as "Archived" until it is +approved. diff --git a/purchase_request_tier_validation/readme/INSTALL.md b/product_tier_validation/readme/INSTALL.md similarity index 100% rename from purchase_request_tier_validation/readme/INSTALL.md rename to product_tier_validation/readme/INSTALL.md diff --git a/product_tier_validation/readme/USAGE.md b/product_tier_validation/readme/USAGE.md new file mode 100644 index 000000000..71bba3ca8 --- /dev/null +++ b/product_tier_validation/readme/USAGE.md @@ -0,0 +1,19 @@ +A regular user creates a new Product and sends it for approval: + +1. Create a Product triggering at least one "Tier Definition". Product + will be in In Development state and marked as Archived until + approved. +2. Click on *Request Validation* button. +3. In the *Reviews* section, at the bottom of the form, inspect the + pending reviews and their status. + +The approver reviews Products to approve: + +1. Now select the filter "Needs my Approval" from Product list view. +2. Open the Product form to approve. It will display a "This Records + needs to be validated" banner, with "Validate" and "Reject" options. +3. The approver can change the state to "Normal". This will + automatically unarchive the record and make it available to be used. + +The Approve/Reject actions do not automatically change the State. This +could be a future improvement. diff --git a/base_tier_validation_correction/static/description/icon.png b/product_tier_validation/static/description/icon.png similarity index 100% rename from base_tier_validation_correction/static/description/icon.png rename to product_tier_validation/static/description/icon.png diff --git a/account_move_tier_validation/static/description/index.html b/product_tier_validation/static/description/index.html similarity index 74% rename from account_move_tier_validation/static/description/index.html rename to product_tier_validation/static/description/index.html index f25e09011..acd37eba9 100644 --- a/account_move_tier_validation/static/description/index.html +++ b/product_tier_validation/static/description/index.html @@ -366,93 +366,88 @@ Odoo Community Association -
-

Account Move Tier Validation

+
+

Product Tier Validation

-

Beta License: AGPL-3 OCA/tier-validation Translate me on Weblate Try me on Runboat

-

This module extends the functionality of Account Move to support a tier -validation process.

+

Beta License: AGPL-3 OCA/product-attribute Translate me on Weblate Try me on Runboat

+

Adds an approval workflow to Products. The default rule requires new +Product to be approved before they can be used.

+

For this, the new Product record is kept as “Archived” until it is +approved.

Table of contents

Installation

-

This module depends on base_tier_validation. You can find it at -[OCA/server-ux](https://github.com/OCA/server-ux)

+

This module depends on base_tier_validation. You can find it at +OCA/server-ux

-
-

Configuration

-

To configure this module, you need to:

+
+

Usage

+

A regular user creates a new Product and sends it for approval:

    -
  1. Go to Settings > Technical > Tier Validations > Tier Definition.
  2. -
  3. Create as many tiers as you want for Account Move model.
  4. +
  5. Create a Product triggering at least one “Tier Definition”. Product +will be in In Development state and marked as Archived until +approved.
  6. +
  7. Click on Request Validation button.
  8. +
  9. In the Reviews section, at the bottom of the form, inspect the +pending reviews and their status.
-
-
-

Usage

-

To use this module, you need to:

+

The approver reviews Products to approve:

    -
  1. Create an Account Invoice triggering at least one “Tier Definition”.
  2. -
  3. Click on Request Validation button.
  4. -
  5. Under the tab Reviews have a look to pending reviews and their -statuses.
  6. -
  7. Once all reviews are validated click on Post.
  8. +
  9. Now select the filter “Needs my Approval” from Product list view.
  10. +
  11. Open the Product form to approve. It will display a “This Records +needs to be validated” banner, with “Validate” and “Reject” options.
  12. +
  13. The approver can change the state to “Normal”. This will +automatically unarchive the record and make it available to be used.
-

Additional features:

-
    -
  • You can filter the Account Invoices requesting your review through the -filter Needs my Review.
  • -
  • User with rights to confirm the Account Invoice (validate all tiers -that would be generated) can directly do the operation, this is, there -is no need for her/him to request a validation.
  • -
+

The Approve/Reject actions do not automatically change the State. This +could be a future improvement.

-

Bug Tracker

-

Bugs are tracked on GitHub Issues. +

Bug Tracker

+

Bugs are tracked on GitHub 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.

+feedback.

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

-

Credits

+

Credits

-

Authors

+

Authors

    -
  • PESOL
  • +
  • Open Source Integrators
-

Maintainers

+

Maintainers

This module is maintained by the OCA.

Odoo Community Association @@ -460,7 +455,9 @@

Maintainers

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/tier-validation project on GitHub.

+

Current maintainer:

+

dreispt

+

This module is part of the OCA/product-attribute project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

diff --git a/product_tier_validation/tests/__init__.py b/product_tier_validation/tests/__init__.py new file mode 100644 index 000000000..9080d05a8 --- /dev/null +++ b/product_tier_validation/tests/__init__.py @@ -0,0 +1,4 @@ +# Copyright 2021 Open Source Integrators +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from . import test_product_tier_validation diff --git a/product_tier_validation/tests/test_product_tier_validation.py b/product_tier_validation/tests/test_product_tier_validation.py new file mode 100644 index 000000000..cab19f01b --- /dev/null +++ b/product_tier_validation/tests/test_product_tier_validation.py @@ -0,0 +1,40 @@ +# Copyright 2021 Open Source Integrators +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo.tests.common import TransactionCase, tagged + + +@tagged("-at_install", "post_install") +class TestProductTierValidation(TransactionCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + group_ids = cls.env.ref("base.group_system").ids + cls.test_user_1 = cls.env["res.users"].create( + { + "name": "John", + "login": "test1", + "groups_id": [(6, 0, group_ids)], + "email": "test@examlple.com", + } + ) + + cls.tier_def_obj = cls.env["tier.definition"] + cls.normal_state = cls.env.ref("product_state.product_state_sellable") + + def test_tier_validation_model_name(self): + self.assertIn( + "product.template", self.tier_def_obj._get_tier_validation_model_names() + ) + + def test_validation_product_template(self): + product = self.env["product.template"].create( + { + "name": "Product for test", + "list_price": 120.00, + } + ) + product.request_validation() + product.with_user(self.test_user_1).validate_tier() + product.write({"product_state_id": self.normal_state.id}) + self.assertEqual(product.state, self.normal_state.code) diff --git a/product_tier_validation/views/product_template_view.xml b/product_tier_validation/views/product_template_view.xml new file mode 100644 index 000000000..30daab8cd --- /dev/null +++ b/product_tier_validation/views/product_template_view.xml @@ -0,0 +1,37 @@ + + + product.form.tier.filter + product.template + + + + + + + + + Reject Validations + + + code + + for rec in records: + rec.reject_tier() + + + + Accept Validations + + + code + + for rec in records: + rec.validate_tier() + + + diff --git a/purchase_request_tier_validation/README.rst b/purchase_request_tier_validation/README.rst deleted file mode 100644 index e2e4260ac..000000000 --- a/purchase_request_tier_validation/README.rst +++ /dev/null @@ -1,128 +0,0 @@ -.. image:: https://odoo-community.org/readme-banner-image - :target: https://odoo-community.org/get-involved?utm_source=readme - :alt: Odoo Community Association - -================================ -Purchase Request Tier Validation -================================ - -.. - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! This file is generated by oca-gen-addon-readme !! - !! changes will be overwritten. !! - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:151f23bfe7a53e4a7cb7590d347db7615de0744bd305f030997a73e2268bf9c1 - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -.. |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%2Ftier--validation-lightgray.png?logo=github - :target: https://github.com/OCA/tier-validation/tree/19.0/purchase_request_tier_validation - :alt: OCA/tier-validation -.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/tier-validation-19-0/tier-validation-19-0-purchase_request_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/tier-validation&target_branch=19.0 - :alt: Try me on Runboat - -|badge1| |badge2| |badge3| |badge4| |badge5| - -This module extends the functionality of Purchase Requests to support a -tier validation process. - -**Table of contents** - -.. contents:: - :local: - -Installation -============ - -This module depends on ``base_tier_validation``. You can find it at -`OCA/server-ux `__ - -Configuration -============= - -A default tier is created allowing Purchase Request Manager to approve -Purchase Requests. - -In addition, you may want to add more tiers, so: - -1. Go to *Settings > Technical > Tier Validations > Tier Definition*. -2. Create as many tiers as you want for Purchase Order model. - -Usage -===== - -To use this module, you need to: - -1. Create a Purchase Request triggering at least one "Tier Definition". -2. Click on *Request Validation* button. -3. Under the tab *Reviews* have a look to pending reviews and their - statuses. -4. Once all reviews are validated button to *Confirm* will be shown. - -Additional features: - -- You can filter the Purchase Request requesting your review through the - filter *Needs my Review*. -- User with rights to confirm the Purchase Request (validate all tiers - that would be generated) can directly do the operation, this is, there - is no need for her/him to request a validation. - -Bug Tracker -=========== - -Bugs are tracked on `GitHub 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 `_. - -Do not contact contributors directly about support or help with technical issues. - -Credits -======= - -Authors -------- - -* ForgeFlow - -Contributors ------------- - -- Adria Gil -- `Komit `__: - - - Quan.nhm - -Other credits -------------- - -Images -~~~~~~ - -- Enric Tobella (logo) - -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/tier-validation `_ project on GitHub. - -You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/purchase_request_tier_validation/__manifest__.py b/purchase_request_tier_validation/__manifest__.py deleted file mode 100644 index 7ec633e40..000000000 --- a/purchase_request_tier_validation/__manifest__.py +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright 2019-2020 ForgeFlow S.L. -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -{ - "name": "Purchase Request Tier Validation", - "summary": "Extends the functionality of Purchase Requests to " - "support a tier validation process.", - "version": "19.0.1.0.0", - "category": "Purchase Management", - "website": "https://github.com/OCA/tier-validation", - "author": "ForgeFlow, Odoo Community Association (OCA)", - "license": "AGPL-3", - "application": False, - "installable": True, - "depends": ["purchase_request", "base_tier_validation"], - "data": [ - "views/purchase_request_view.xml", - ], - "demo": [ - "demo/tier_definition.xml", - ], -} diff --git a/purchase_request_tier_validation/demo/tier_definition.xml b/purchase_request_tier_validation/demo/tier_definition.xml deleted file mode 100644 index 5899f4ebc..000000000 --- a/purchase_request_tier_validation/demo/tier_definition.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - domain - - group - - - - - diff --git a/purchase_request_tier_validation/i18n/es.po b/purchase_request_tier_validation/i18n/es.po deleted file mode 100644 index 72edb14f6..000000000 --- a/purchase_request_tier_validation/i18n/es.po +++ /dev/null @@ -1,170 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * purchase_request_tier_validation -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 11.0\n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-11-06 21:37+0000\n" -"Last-Translator: Ivorra78 \n" -"Language-Team: none\n" -"Language: es\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.17\n" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__can_review -msgid "Can Review" -msgstr "Puede Revisar" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_form_inherit_tier -msgid "Confirm" -msgstr "Confirmar" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__has_comment -msgid "Has Comment" -msgstr "Tiene Comentario" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__hide_reviews -msgid "Hide Reviews" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,help:purchase_request_tier_validation.field_purchase_request__has_comment -msgid "If set, Allow the reviewer to leave a comment on the review." -msgstr "" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "My Purchases to review" -msgstr "Mis Compras a revisar" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__need_validation -msgid "Need Validation" -msgstr "Necesita validación" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "Need actions" -msgstr "Acción necesaria" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "Needs my Review" -msgstr "Necesita mi revisión" - -#. module: purchase_request_tier_validation -#: model:tier.definition,name:purchase_request_tier_validation.purchase_request_default_tier_definition -msgid "New Tier Validation" -msgstr "Nueva Validación de Nivel" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__next_review -msgid "Next Review" -msgstr "Siguiente revisión" - -#. module: purchase_request_tier_validation -#: model:ir.model,name:purchase_request_tier_validation.model_purchase_request -msgid "Purchase Request" -msgstr "Solicitud de Compra" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "Purchase Requests validated and ready to be confirmed" -msgstr "Solicitudes de compra validadas y preparadas para ser confirmadas" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__rejected -msgid "Rejected" -msgstr "Rechazado/a" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__rejected_message -msgid "Rejected Message" -msgstr "Mensaje Rechazado" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__reviewer_ids -msgid "Reviewers" -msgstr "Revisores" - -#. module: purchase_request_tier_validation -#: model:ir.model,name:purchase_request_tier_validation.model_tier_definition -msgid "Tier Definition" -msgstr "Definición del nivel" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__to_validate_message -msgid "To Validate Message" -msgstr "Para validar el mensaje" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validated -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "Validated" -msgstr "Validada" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validated_message -msgid "Validated Message" -msgstr "Mensaje Validado" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validation_status -msgid "Validation Status" -msgstr "Estado de la Validación" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__review_ids -msgid "Validations" -msgstr "Validaciones" - -#~ msgid "Display Name" -#~ msgstr "Mostrar Nombre" - -#~ msgid "ID" -#~ msgstr "ID (identificación)" - -#~ msgid "Last Modified on" -#~ msgstr "Última Modificación el" - -#~ msgid "" -#~ "This Purchase Request needs to be\n" -#~ " validated." -#~ msgstr "" -#~ "Esta Solicitud de compra debe ser\n" -#~ " validada." - -#~ msgid " Operation has been rejected." -#~ msgstr "" -#~ "La operación ha sido rechazada." - -#~ msgid " Operation has been validated!" -#~ msgstr "" -#~ " La operación ha sido validada!" - -#~ msgid "Dismiss" -#~ msgstr "Descartar" - -#~ msgid "Reject" -#~ msgstr "Rechazar" - -#~ msgid "Request Validation" -#~ msgstr "Solicitar Validación" - -#~ msgid "Restart Validation" -#~ msgstr "Reiniciar Validación" - -#~ msgid "Tier Review" -#~ msgstr "Revisión de nivel" - -#~ msgid "Validate" -#~ msgstr "Validar" diff --git a/purchase_request_tier_validation/i18n/es_EC.po b/purchase_request_tier_validation/i18n/es_EC.po deleted file mode 100644 index 994a543d5..000000000 --- a/purchase_request_tier_validation/i18n/es_EC.po +++ /dev/null @@ -1,160 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * purchase_request_tier_validation -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0\n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2019-11-16 23:36+0000\n" -"Last-Translator: Cristian Salamea \n" -"Language-Team: none\n" -"Language: es_EC\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 3.8\n" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__can_review -msgid "Can Review" -msgstr "" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_form_inherit_tier -msgid "Confirm" -msgstr "Confirmar" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__has_comment -msgid "Has Comment" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__hide_reviews -msgid "Hide Reviews" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,help:purchase_request_tier_validation.field_purchase_request__has_comment -msgid "If set, Allow the reviewer to leave a comment on the review." -msgstr "" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "My Purchases to review" -msgstr "Mis compras a revisar" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__need_validation -msgid "Need Validation" -msgstr "" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "Need actions" -msgstr "Necesita acciones" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "Needs my Review" -msgstr "Necesita mi revisión" - -#. module: purchase_request_tier_validation -#: model:tier.definition,name:purchase_request_tier_validation.purchase_request_default_tier_definition -msgid "New Tier Validation" -msgstr "Nueva capa de validación" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__next_review -msgid "Next Review" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model,name:purchase_request_tier_validation.model_purchase_request -msgid "Purchase Request" -msgstr "Requisición de Compra" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "Purchase Requests validated and ready to be confirmed" -msgstr "Requisición de compra validada y ya confirmada" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__rejected -msgid "Rejected" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__rejected_message -msgid "Rejected Message" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__reviewer_ids -msgid "Reviewers" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model,name:purchase_request_tier_validation.model_tier_definition -msgid "Tier Definition" -msgstr "Definición" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__to_validate_message -msgid "To Validate Message" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validated -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "Validated" -msgstr "Validado" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validated_message -msgid "Validated Message" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validation_status -msgid "Validation Status" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__review_ids -msgid "Validations" -msgstr "" - -#~ msgid "" -#~ "This Purchase Request needs to be\n" -#~ " validated." -#~ msgstr "" -#~ "Esa requisición de compra necesita ser\n" -#~ " validada." - -#~ msgid " Operation has been rejected." -#~ msgstr "" -#~ " Operación ha sido rechazada." - -#~ msgid " Operation has been validated!" -#~ msgstr " Operación ha sido validada!" - -#~ msgid "Dismiss" -#~ msgstr "Descartar" - -#~ msgid "Reject" -#~ msgstr "Rechazar" - -#~ msgid "Request Validation" -#~ msgstr "Solicitar Validación" - -#~ msgid "Restart Validation" -#~ msgstr "Reinicia validación" - -#~ msgid "Tier Review" -#~ msgstr "Revisar" - -#~ msgid "Validate" -#~ msgstr "Validar" diff --git a/purchase_request_tier_validation/i18n/it.po b/purchase_request_tier_validation/i18n/it.po deleted file mode 100644 index 4294faeeb..000000000 --- a/purchase_request_tier_validation/i18n/it.po +++ /dev/null @@ -1,163 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * purchase_request_tier_validation -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 13.0\n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-06-18 17:37+0000\n" -"Last-Translator: mymage \n" -"Language-Team: none\n" -"Language: it\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.17\n" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__can_review -msgid "Can Review" -msgstr "Può revisionare" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_form_inherit_tier -msgid "Confirm" -msgstr "Conferma" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__has_comment -msgid "Has Comment" -msgstr "Ha commenti" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__hide_reviews -msgid "Hide Reviews" -msgstr "Nascondi revisioni" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,help:purchase_request_tier_validation.field_purchase_request__has_comment -msgid "If set, Allow the reviewer to leave a comment on the review." -msgstr "" -"Se attivata, consente al revisore di lasciare un commento nella revisione." - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "My Purchases to review" -msgstr "I miei acquisti da revisionare" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__need_validation -msgid "Need Validation" -msgstr "Richiede conferma" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "Need actions" -msgstr "Richiedono attività" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "Needs my Review" -msgstr "Richiede la mia revisione" - -#. module: purchase_request_tier_validation -#: model:tier.definition,name:purchase_request_tier_validation.purchase_request_default_tier_definition -msgid "New Tier Validation" -msgstr "Nuovo Tier di Validazione" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__next_review -msgid "Next Review" -msgstr "Prossima revisione" - -#. module: purchase_request_tier_validation -#: model:ir.model,name:purchase_request_tier_validation.model_purchase_request -msgid "Purchase Request" -msgstr "Richiesta di acquisto" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "Purchase Requests validated and ready to be confirmed" -msgstr "Richiesta di acquisto validata e pronta per essere confermata" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__rejected -msgid "Rejected" -msgstr "Rifiutata" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__rejected_message -msgid "Rejected Message" -msgstr "Messaggio di rifiuto" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__reviewer_ids -msgid "Reviewers" -msgstr "Revisori" - -#. module: purchase_request_tier_validation -#: model:ir.model,name:purchase_request_tier_validation.model_tier_definition -msgid "Tier Definition" -msgstr "Definizione livello" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__to_validate_message -msgid "To Validate Message" -msgstr "Messaggio per 'Da validare'" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validated -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "Validated" -msgstr "Approvata" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validated_message -msgid "Validated Message" -msgstr "Messaggio per 'Validata'" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validation_status -msgid "Validation Status" -msgstr "Stato validazione" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__review_ids -msgid "Validations" -msgstr "Validazioni" - -#~ msgid "" -#~ "This Purchase Request needs to be\n" -#~ " validated." -#~ msgstr "" -#~ "Questa Richiesta d'Acquisto deve essere " -#~ "approvata." - -#~ msgid " Operation has been rejected." -#~ msgstr "" -#~ " L'operazione è stata rifiutata." - -#~ msgid " Operation has been validated!" -#~ msgstr "" -#~ " L'operazione è stata approvata!" - -#, fuzzy -#~ msgid "Dismiss" -#~ msgstr "Annulla" - -#~ msgid "Reject" -#~ msgstr "Rifiuta" - -#~ msgid "Request Validation" -#~ msgstr "Richiedi Approvazione" - -#~ msgid "Restart Validation" -#~ msgstr "Reinizia Approvazione" - -#~ msgid "Tier Review" -#~ msgstr "Verifica Tier" - -#~ msgid "Validate" -#~ msgstr "Approva" diff --git a/purchase_request_tier_validation/i18n/nl.po b/purchase_request_tier_validation/i18n/nl.po deleted file mode 100644 index 2866484c9..000000000 --- a/purchase_request_tier_validation/i18n/nl.po +++ /dev/null @@ -1,136 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * purchase_request_tier_validation -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 19.0\n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2026-07-24 20:46+0000\n" -"Last-Translator: Bosd \n" -"Language-Team: none\n" -"Language: nl\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.15.2\n" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__can_forward -msgid "Can Forward" -msgstr "Kan doorsturen" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__can_review -msgid "Can Review" -msgstr "Kan beoordelen" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_form_inherit_tier -msgid "Confirm" -msgstr "Bevestigen" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__display_name -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_tier_definition__display_name -msgid "Display Name" -msgstr "Schermnaam" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__has_comment -msgid "Has Comment" -msgstr "Heeft opmerking" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__hide_reviews -msgid "Hide Reviews" -msgstr "Beoordelingen verbergen" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__id -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_tier_definition__id -msgid "ID" -msgstr "ID" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,help:purchase_request_tier_validation.field_purchase_request__has_comment -msgid "If set, Allow the reviewer to leave a comment on the review." -msgstr "" -"Indien ingeschakeld kan de beoordelaar een opmerking achterlaten bij de " -"beoordeling." - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "My Purchases to review" -msgstr "Mijn te beoordelen inkoopaanvragen" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__need_validation -msgid "Need Validation" -msgstr "Validatie nodig" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "Needs my Review" -msgstr "Vereist mijn beoordeling" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__next_review -msgid "Next Review" -msgstr "Volgende beoordeling" - -#. module: purchase_request_tier_validation -#: model:ir.model,name:purchase_request_tier_validation.model_purchase_request -msgid "Purchase Request" -msgstr "Inkoopaanvraag" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "Purchase Requests validated and ready to be confirmed" -msgstr "Inkoopaanvragen gevalideerd en gereed om te worden bevestigd" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__rejected_message -msgid "Rejected Message" -msgstr "Bericht bij afwijzing" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__require_authentication -msgid "Require Authentication" -msgstr "Authenticatie vereist" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__reviewer_ids -msgid "Reviewers" -msgstr "Beoordelaars" - -#. module: purchase_request_tier_validation -#: model:ir.model,name:purchase_request_tier_validation.model_tier_definition -msgid "Tier Definition" -msgstr "Niveaudefinitie" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__to_validate_message -msgid "To Validate Message" -msgstr "Bericht voor validatie" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "Validated" -msgstr "Gevalideerd" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validated_message -msgid "Validated Message" -msgstr "Bericht bij goedkeuring" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validation_status -msgid "Validation Status" -msgstr "Validatiestatus" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__review_ids -msgid "Validations" -msgstr "Validaties" diff --git a/purchase_request_tier_validation/i18n/nl_NL.po b/purchase_request_tier_validation/i18n/nl_NL.po deleted file mode 100644 index 014d5ff90..000000000 --- a/purchase_request_tier_validation/i18n/nl_NL.po +++ /dev/null @@ -1,160 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * purchase_request_tier_validation -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 11.0\n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2019-05-29 15:20+0000\n" -"Last-Translator: Cas Vissers \n" -"Language-Team: none\n" -"Language: nl_NL\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 3.6.1\n" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__can_review -msgid "Can Review" -msgstr "" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_form_inherit_tier -msgid "Confirm" -msgstr "Bevestig" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__has_comment -msgid "Has Comment" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__hide_reviews -msgid "Hide Reviews" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,help:purchase_request_tier_validation.field_purchase_request__has_comment -msgid "If set, Allow the reviewer to leave a comment on the review." -msgstr "" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "My Purchases to review" -msgstr "Mijn te controleren inkopen" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__need_validation -msgid "Need Validation" -msgstr "" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "Need actions" -msgstr "Actie nodig" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "Needs my Review" -msgstr "Review nodig" - -#. module: purchase_request_tier_validation -#: model:tier.definition,name:purchase_request_tier_validation.purchase_request_default_tier_definition -msgid "New Tier Validation" -msgstr "Nieuwe tier validering" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__next_review -msgid "Next Review" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model,name:purchase_request_tier_validation.model_purchase_request -msgid "Purchase Request" -msgstr "Inkoopaanvraag" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "Purchase Requests validated and ready to be confirmed" -msgstr "Inkoopaanvragen gevalideerd en klaar om te bevestigen" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__rejected -msgid "Rejected" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__rejected_message -msgid "Rejected Message" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__reviewer_ids -msgid "Reviewers" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model,name:purchase_request_tier_validation.model_tier_definition -#, fuzzy -msgid "Tier Definition" -msgstr "tier.definition" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__to_validate_message -msgid "To Validate Message" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validated -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "Validated" -msgstr "Gevalideerd" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validated_message -msgid "Validated Message" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validation_status -msgid "Validation Status" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__review_ids -msgid "Validations" -msgstr "" - -#~ msgid "" -#~ "This Purchase Request needs to be\n" -#~ " validated." -#~ msgstr "" -#~ "Deze inkoopaanvraag moet\n" -#~ " gevalideerd worden." - -#~ msgid " Operation has been rejected." -#~ msgstr " Bewerking is geweigerd." - -#~ msgid " Operation has been validated!" -#~ msgstr " Bewerking is gevalideerd!" - -#~ msgid "Dismiss" -#~ msgstr "Weiger" - -#~ msgid "Reject" -#~ msgstr "Weiger" - -#~ msgid "Request Validation" -#~ msgstr "Vraag validatie aan" - -#~ msgid "Restart Validation" -#~ msgstr "Herstart validatie" - -#~ msgid "Tier Review" -#~ msgstr "Tier review" - -#~ msgid "Validate" -#~ msgstr "Valideer" diff --git a/purchase_request_tier_validation/i18n/pt_BR.po b/purchase_request_tier_validation/i18n/pt_BR.po deleted file mode 100644 index afc79cd69..000000000 --- a/purchase_request_tier_validation/i18n/pt_BR.po +++ /dev/null @@ -1,126 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * purchase_request_tier_validation -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 18.0\n" -"Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" -"Language-Team: none\n" -"Language: pt_BR\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n > 1;\n" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__can_review -msgid "Can Review" -msgstr "" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_form_inherit_tier -msgid "Confirm" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__has_comment -msgid "Has Comment" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__hide_reviews -msgid "Hide Reviews" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,help:purchase_request_tier_validation.field_purchase_request__has_comment -msgid "If set, Allow the reviewer to leave a comment on the review." -msgstr "" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "My Purchases to review" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__need_validation -msgid "Need Validation" -msgstr "" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "Need actions" -msgstr "" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "Needs my Review" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:tier.definition,name:purchase_request_tier_validation.purchase_request_default_tier_definition -msgid "New Tier Validation" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__next_review -msgid "Next Review" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model,name:purchase_request_tier_validation.model_purchase_request -msgid "Purchase Request" -msgstr "" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "Purchase Requests validated and ready to be confirmed" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__rejected -msgid "Rejected" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__rejected_message -msgid "Rejected Message" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__reviewer_ids -msgid "Reviewers" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model,name:purchase_request_tier_validation.model_tier_definition -msgid "Tier Definition" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__to_validate_message -msgid "To Validate Message" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validated -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "Validated" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validated_message -msgid "Validated Message" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validation_status -msgid "Validation Status" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__review_ids -msgid "Validations" -msgstr "" diff --git a/purchase_request_tier_validation/i18n/purchase_request_tier_validation.pot b/purchase_request_tier_validation/i18n/purchase_request_tier_validation.pot deleted file mode 100644 index d544c679c..000000000 --- a/purchase_request_tier_validation/i18n/purchase_request_tier_validation.pot +++ /dev/null @@ -1,131 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * purchase_request_tier_validation -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 19.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: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__can_forward -msgid "Can Forward" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__can_review -msgid "Can Review" -msgstr "" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_form_inherit_tier -msgid "Confirm" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__display_name -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_tier_definition__display_name -msgid "Display Name" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__has_comment -msgid "Has Comment" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__hide_reviews -msgid "Hide Reviews" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__id -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_tier_definition__id -msgid "ID" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,help:purchase_request_tier_validation.field_purchase_request__has_comment -msgid "If set, Allow the reviewer to leave a comment on the review." -msgstr "" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "My Purchases to review" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__need_validation -msgid "Need Validation" -msgstr "" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "Needs my Review" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__next_review -msgid "Next Review" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model,name:purchase_request_tier_validation.model_purchase_request -msgid "Purchase Request" -msgstr "" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "Purchase Requests validated and ready to be confirmed" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__rejected_message -msgid "Rejected Message" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__require_authentication -msgid "Require Authentication" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__reviewer_ids -msgid "Reviewers" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model,name:purchase_request_tier_validation.model_tier_definition -msgid "Tier Definition" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__to_validate_message -msgid "To Validate Message" -msgstr "" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "Validated" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validated_message -msgid "Validated Message" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validation_status -msgid "Validation Status" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__review_ids -msgid "Validations" -msgstr "" diff --git a/purchase_request_tier_validation/i18n/tr.po b/purchase_request_tier_validation/i18n/tr.po deleted file mode 100644 index f85f155cd..000000000 --- a/purchase_request_tier_validation/i18n/tr.po +++ /dev/null @@ -1,128 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * purchase_request_tier_validation -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 18.0\n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2025-10-30 16:09+0000\n" -"Last-Translator: Betül Öğmen \n" -"Language-Team: none\n" -"Language: tr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.10.4\n" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__can_review -msgid "Can Review" -msgstr "Gözden Geçirebilir" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_form_inherit_tier -msgid "Confirm" -msgstr "Onayla" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__has_comment -msgid "Has Comment" -msgstr "Yorum Var" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__hide_reviews -msgid "Hide Reviews" -msgstr "Gözden Geçirmeleri Gizle" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,help:purchase_request_tier_validation.field_purchase_request__has_comment -msgid "If set, Allow the reviewer to leave a comment on the review." -msgstr "Ayarlanırsa, gözden geçirenin incelemeye yorum yazmasına izin ver." - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "My Purchases to review" -msgstr "Gözden geçirilecek Satınalmalarım" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__need_validation -msgid "Need Validation" -msgstr "Onay Gerekiyor" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "Need actions" -msgstr "İşlem Gerekli" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "Needs my Review" -msgstr "Gözden Geçirmem Gerekenler" - -#. module: purchase_request_tier_validation -#: model:tier.definition,name:purchase_request_tier_validation.purchase_request_default_tier_definition -msgid "New Tier Validation" -msgstr "Yeni Seviye Doğrulama" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__next_review -msgid "Next Review" -msgstr "Sonraki Gözden Geçirme" - -#. module: purchase_request_tier_validation -#: model:ir.model,name:purchase_request_tier_validation.model_purchase_request -msgid "Purchase Request" -msgstr "Satınalma Talebi" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "Purchase Requests validated and ready to be confirmed" -msgstr "Satın Alma Talepleri onaylandı ve doğrulanmaya hazır" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__rejected -msgid "Rejected" -msgstr "Reddedildi" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__rejected_message -msgid "Rejected Message" -msgstr "Reddedilme Mesajı" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__reviewer_ids -msgid "Reviewers" -msgstr "Gözden Geçirenler" - -#. module: purchase_request_tier_validation -#: model:ir.model,name:purchase_request_tier_validation.model_tier_definition -msgid "Tier Definition" -msgstr "Katman Tanımı" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__to_validate_message -msgid "To Validate Message" -msgstr "Mesajı Doğrulamak İçin" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validated -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "Validated" -msgstr "Doğrulandı" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validated_message -msgid "Validated Message" -msgstr "Doğrulanmış Mesaj" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validation_status -msgid "Validation Status" -msgstr "Doğrulama Durumu" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__review_ids -msgid "Validations" -msgstr "Onaylamalar" diff --git a/purchase_request_tier_validation/i18n/zh_CN.po b/purchase_request_tier_validation/i18n/zh_CN.po deleted file mode 100644 index d35824855..000000000 --- a/purchase_request_tier_validation/i18n/zh_CN.po +++ /dev/null @@ -1,157 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * purchase_request_tier_validation -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 13.0\n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2020-03-28 16:13+0000\n" -"Last-Translator: Dong \n" -"Language-Team: none\n" -"Language: zh_CN\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 3.10\n" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__can_review -msgid "Can Review" -msgstr "" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_form_inherit_tier -msgid "Confirm" -msgstr "确认" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__has_comment -msgid "Has Comment" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__hide_reviews -msgid "Hide Reviews" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,help:purchase_request_tier_validation.field_purchase_request__has_comment -msgid "If set, Allow the reviewer to leave a comment on the review." -msgstr "" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "My Purchases to review" -msgstr "等待我审核的采购" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__need_validation -msgid "Need Validation" -msgstr "" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "Need actions" -msgstr "需要操作" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "Needs my Review" -msgstr "需要我审核" - -#. module: purchase_request_tier_validation -#: model:tier.definition,name:purchase_request_tier_validation.purchase_request_default_tier_definition -msgid "New Tier Validation" -msgstr "请购单多层级审批" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__next_review -msgid "Next Review" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model,name:purchase_request_tier_validation.model_purchase_request -msgid "Purchase Request" -msgstr "请购" - -#. module: purchase_request_tier_validation -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "Purchase Requests validated and ready to be confirmed" -msgstr "请购单已验证并等待确认" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__rejected -msgid "Rejected" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__rejected_message -msgid "Rejected Message" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__reviewer_ids -msgid "Reviewers" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model,name:purchase_request_tier_validation.model_tier_definition -msgid "Tier Definition" -msgstr "层级定义" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__to_validate_message -msgid "To Validate Message" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validated -#: model_terms:ir.ui.view,arch_db:purchase_request_tier_validation.view_purchase_request_filter -msgid "Validated" -msgstr "已批准" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validated_message -msgid "Validated Message" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__validation_status -msgid "Validation Status" -msgstr "" - -#. module: purchase_request_tier_validation -#: model:ir.model.fields,field_description:purchase_request_tier_validation.field_purchase_request__review_ids -msgid "Validations" -msgstr "" - -#~ msgid "" -#~ "This Purchase Request needs to be\n" -#~ " validated." -#~ msgstr "这个请购单需要审批。" - -#~ msgid " Operation has been rejected." -#~ msgstr " 操作已被驳回。" - -#~ msgid " Operation has been validated!" -#~ msgstr " 操作已被 验证!" - -#~ msgid "Dismiss" -#~ msgstr "作废" - -#~ msgid "Reject" -#~ msgstr "驳回" - -#~ msgid "Request Validation" -#~ msgstr "请求审批" - -#~ msgid "Restart Validation" -#~ msgstr "撤回审批" - -#~ msgid "Tier Review" -#~ msgstr "多层级审批" - -#~ msgid "Validate" -#~ msgstr "批准" diff --git a/purchase_request_tier_validation/models/__init__.py b/purchase_request_tier_validation/models/__init__.py deleted file mode 100644 index 01f3574bc..000000000 --- a/purchase_request_tier_validation/models/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from . import purchase_request -from . import tier_definition diff --git a/purchase_request_tier_validation/models/purchase_request.py b/purchase_request_tier_validation/models/purchase_request.py deleted file mode 100644 index ee2f5a793..000000000 --- a/purchase_request_tier_validation/models/purchase_request.py +++ /dev/null @@ -1,18 +0,0 @@ -# Copyright 2019-2020 ForgeFlow S.L. -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -from odoo import api, models - - -class PurchaseRequest(models.Model): - _name = "purchase.request" - _inherit = ["purchase.request", "tier.validation"] - _state_from = ["draft"] - _state_to = ["approved"] - - _tier_validation_manual_config = False - - @api.model - def _get_under_validation_exceptions(self): - res = super()._get_under_validation_exceptions() - res.append("route_id") - return res diff --git a/purchase_request_tier_validation/pyproject.toml b/purchase_request_tier_validation/pyproject.toml deleted file mode 100644 index 4231d0ccc..000000000 --- a/purchase_request_tier_validation/pyproject.toml +++ /dev/null @@ -1,3 +0,0 @@ -[build-system] -requires = ["whool"] -build-backend = "whool.buildapi" diff --git a/purchase_request_tier_validation/readme/CONFIGURE.md b/purchase_request_tier_validation/readme/CONFIGURE.md deleted file mode 100644 index bf51b53ad..000000000 --- a/purchase_request_tier_validation/readme/CONFIGURE.md +++ /dev/null @@ -1,8 +0,0 @@ -A default tier is created allowing Purchase Request Manager to approve -Purchase Requests. - -In addition, you may want to add more tiers, so: - -1. Go to *Settings \> Technical \> Tier Validations \> Tier - Definition*. -2. Create as many tiers as you want for Purchase Order model. diff --git a/purchase_request_tier_validation/readme/CONTRIBUTORS.md b/purchase_request_tier_validation/readme/CONTRIBUTORS.md deleted file mode 100644 index 23f80d7f7..000000000 --- a/purchase_request_tier_validation/readme/CONTRIBUTORS.md +++ /dev/null @@ -1,3 +0,0 @@ -- Adria Gil \<\> -- [Komit](https://komit-consulting.com): - - Quan.nhm \<\> diff --git a/purchase_request_tier_validation/readme/CREDITS.md b/purchase_request_tier_validation/readme/CREDITS.md deleted file mode 100644 index f25215063..000000000 --- a/purchase_request_tier_validation/readme/CREDITS.md +++ /dev/null @@ -1,3 +0,0 @@ -## Images - -- Enric Tobella (logo) diff --git a/purchase_request_tier_validation/readme/DESCRIPTION.md b/purchase_request_tier_validation/readme/DESCRIPTION.md deleted file mode 100644 index 7c9600ccc..000000000 --- a/purchase_request_tier_validation/readme/DESCRIPTION.md +++ /dev/null @@ -1,2 +0,0 @@ -This module extends the functionality of Purchase Requests to support a -tier validation process. diff --git a/purchase_request_tier_validation/readme/USAGE.md b/purchase_request_tier_validation/readme/USAGE.md deleted file mode 100644 index e1253a3fa..000000000 --- a/purchase_request_tier_validation/readme/USAGE.md +++ /dev/null @@ -1,15 +0,0 @@ -To use this module, you need to: - -1. Create a Purchase Request triggering at least one "Tier Definition". -2. Click on *Request Validation* button. -3. Under the tab *Reviews* have a look to pending reviews and their - statuses. -4. Once all reviews are validated button to *Confirm* will be shown. - -Additional features: - -- You can filter the Purchase Request requesting your review through the - filter *Needs my Review*. -- User with rights to confirm the Purchase Request (validate all tiers - that would be generated) can directly do the operation, this is, there - is no need for her/him to request a validation. diff --git a/purchase_request_tier_validation/static/description/icon.png b/purchase_request_tier_validation/static/description/icon.png deleted file mode 100644 index c31ecfd9f..000000000 Binary files a/purchase_request_tier_validation/static/description/icon.png and /dev/null differ diff --git a/purchase_request_tier_validation/static/description/index.html b/purchase_request_tier_validation/static/description/index.html deleted file mode 100644 index 8a0a27f80..000000000 --- a/purchase_request_tier_validation/static/description/index.html +++ /dev/null @@ -1,484 +0,0 @@ - - - - - -README.rst - - - -
- - - -Odoo Community Association - -
-

Purchase Request Tier Validation

- -

Beta License: AGPL-3 OCA/tier-validation Translate me on Weblate Try me on Runboat

-

This module extends the functionality of Purchase Requests to support a -tier validation process.

-

Table of contents

- -
-

Installation

-

This module depends on base_tier_validation. You can find it at -OCA/server-ux

-
-
-

Configuration

-

A default tier is created allowing Purchase Request Manager to approve -Purchase Requests.

-

In addition, you may want to add more tiers, so:

-
    -
  1. Go to Settings > Technical > Tier Validations > Tier Definition.
  2. -
  3. Create as many tiers as you want for Purchase Order model.
  4. -
-
-
-

Usage

-

To use this module, you need to:

-
    -
  1. Create a Purchase Request triggering at least one “Tier Definition”.
  2. -
  3. Click on Request Validation button.
  4. -
  5. Under the tab Reviews have a look to pending reviews and their -statuses.
  6. -
  7. Once all reviews are validated button to Confirm will be shown.
  8. -
-

Additional features:

-
    -
  • You can filter the Purchase Request requesting your review through the -filter Needs my Review.
  • -
  • User with rights to confirm the Purchase Request (validate all tiers -that would be generated) can directly do the operation, this is, there -is no need for her/him to request a validation.
  • -
-
-
-

Bug Tracker

-

Bugs are tracked on GitHub 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.

-

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

-
-
-

Credits

-
-

Authors

-
    -
  • ForgeFlow
  • -
-
- -
-

Other credits

-
-

Images

-
    -
  • Enric Tobella (logo)
  • -
-
-
-
-

Maintainers

-

This module is maintained by the OCA.

- -Odoo Community Association - -

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/tier-validation project on GitHub.

-

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

-
-
-
-
- - diff --git a/purchase_request_tier_validation/tests/__init__.py b/purchase_request_tier_validation/tests/__init__.py deleted file mode 100644 index 12d61b0be..000000000 --- a/purchase_request_tier_validation/tests/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from . import test_purchase_request_tier_validation diff --git a/purchase_request_tier_validation/tests/test_purchase_request_tier_validation.py b/purchase_request_tier_validation/tests/test_purchase_request_tier_validation.py deleted file mode 100644 index 9dedb3801..000000000 --- a/purchase_request_tier_validation/tests/test_purchase_request_tier_validation.py +++ /dev/null @@ -1,24 +0,0 @@ -# Copyright 2017-2020 ForgeFlow S.L. -# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl-3.0). - -from odoo.tests import common - - -class TestPurchaseRequest(common.TransactionCase): - @classmethod - def setUpClass(cls): - super().setUpClass() - - # common models - cls.purchase_request = cls.env["purchase.request"] - cls.tier_definition = cls.env["tier.definition"] - - def test_get_under_validation_exceptions(self): - self.assertIn( - "route_id", self.purchase_request._get_under_validation_exceptions() - ) - - def test_get_tier_validation_model_names(self): - self.assertIn( - "purchase.request", self.tier_definition._get_tier_validation_model_names() - ) diff --git a/purchase_request_tier_validation/views/purchase_request_view.xml b/purchase_request_tier_validation/views/purchase_request_view.xml deleted file mode 100644 index 8f45476da..000000000 --- a/purchase_request_tier_validation/views/purchase_request_view.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - - purchase.request.tier.validation.form - purchase.request - - - - - - - - - draft,approved,done,rejected - - - - - - purchase.request.select - purchase_request_tier_validation - purchase.request - - - - - - - - - - - diff --git a/purchase_tier_validation/__manifest__.py b/purchase_tier_validation/__manifest__.py index 82bac0f49..e21d3a16f 100644 --- a/purchase_tier_validation/__manifest__.py +++ b/purchase_tier_validation/__manifest__.py @@ -10,7 +10,7 @@ "author": "ForgeFlow, Odoo Community Association (OCA)", "license": "AGPL-3", "application": False, - "installable": True, + "installable": False, "depends": ["purchase", "base_tier_validation"], "data": ["views/purchase_order_view.xml"], } diff --git a/sale_tier_validation/__manifest__.py b/sale_tier_validation/__manifest__.py index 285e16771..0918aaed8 100644 --- a/sale_tier_validation/__manifest__.py +++ b/sale_tier_validation/__manifest__.py @@ -10,7 +10,7 @@ "author": "Open Source Integrators, Odoo Community Association (OCA)", "license": "AGPL-3", "application": False, - "installable": True, + "installable": False, "depends": ["sale", "base_tier_validation"], "data": [ "data/mail_data.xml", diff --git a/stock_picking_tier_validation/README.rst b/stock_picking_tier_validation/README.rst deleted file mode 100644 index 3652d0f8c..000000000 --- a/stock_picking_tier_validation/README.rst +++ /dev/null @@ -1,121 +0,0 @@ -.. image:: https://odoo-community.org/readme-banner-image - :target: https://odoo-community.org/get-involved?utm_source=readme - :alt: Odoo Community Association - -============================= -Stock Picking Tier Validation -============================= - -.. - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! This file is generated by oca-gen-addon-readme !! - !! changes will be overwritten. !! - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:9445d0e9e8bd199c1d067deb0358082d734403cb3f7cdf105290aaa7ab7c916b - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -.. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png - :target: https://odoo-community.org/page/development-status - :alt: Alpha -.. |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%2Ftier--validation-lightgray.png?logo=github - :target: https://github.com/OCA/tier-validation/tree/19.0/stock_picking_tier_validation - :alt: OCA/tier-validation -.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/tier-validation-19-0/tier-validation-19-0-stock_picking_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/tier-validation&target_branch=19.0 - :alt: Try me on Runboat - -|badge1| |badge2| |badge3| |badge4| |badge5| - -This module extends the functionality of Transfers to support a tier -validation process. - -.. IMPORTANT:: - This is an alpha version, the data model and design can change at any time without warning. - Only for development or testing purpose, do not use in production. - `More details on development status `_ - -**Table of contents** - -.. contents:: - :local: - -Installation -============ - -This module depends on ``base_tier_validation``. You can find it at -`OCA/server-ux `__ - -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 Transfer model. - -Usage -===== - -To use this module, you need to: - -1. Create a Transfer triggering at least one "Tier Definition". -2. Click on *Request Validation* button. -3. Under the tab *Reviews* have a look to pending reviews and their - statuses. -4. Once all reviews are validated click on *Validate*. - -Additional features: - -- You can filter the Transfers requesting your review through the filter - *Needs my Review*. -- User with rights to validate the Transfer (validate all tiers that - would be generated) can directly do the operation, this is, there is - no need for her/him to request a validation. - -Bug Tracker -=========== - -Bugs are tracked on `GitHub 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 `_. - -Do not contact contributors directly about support or help with technical issues. - -Credits -======= - -Authors -------- - -* Ecosoft - -Contributors ------------- - -- `Ecosoft `__: - - - Pimolnat Suntian - -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/tier-validation `_ project on GitHub. - -You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/stock_picking_tier_validation/__init__.py b/stock_picking_tier_validation/__init__.py deleted file mode 100644 index 31660d6a9..000000000 --- a/stock_picking_tier_validation/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from . import models diff --git a/stock_picking_tier_validation/__manifest__.py b/stock_picking_tier_validation/__manifest__.py deleted file mode 100644 index a2efc7ac7..000000000 --- a/stock_picking_tier_validation/__manifest__.py +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright 2021 Ecosoft Co., Ltd. (http://ecosoft.co.th) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -{ - "name": "Stock Picking Tier Validation", - "summary": "Extends the functionality of Transfers to " - "support a tier validation process.", - "version": "19.0.1.0.0", - "category": "Warehouse Management", - "website": "https://github.com/OCA/tier-validation", - "author": "Ecosoft, Odoo Community Association (OCA)", - "license": "AGPL-3", - "depends": ["stock", "base_tier_validation"], - "data": ["views/stock_picking_views.xml"], - "installable": True, - "development_status": "Alpha", -} diff --git a/stock_picking_tier_validation/i18n/it.po b/stock_picking_tier_validation/i18n/it.po deleted file mode 100644 index 9d71d348a..000000000 --- a/stock_picking_tier_validation/i18n/it.po +++ /dev/null @@ -1,130 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * stock_picking_tier_validation -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" -"Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2025-06-24 09:25+0000\n" -"Last-Translator: mymage \n" -"Language-Team: none\n" -"Language: it\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.10.4\n" - -#. module: stock_picking_tier_validation -#. odoo-python -#: code:addons/stock_picking_tier_validation/models/stock_picking.py:0 -msgid "A validation process is still open for at least one record." -msgstr "Un processo di approvazione è ancora aperto per almeno un record." - -#. module: stock_picking_tier_validation -#: model:ir.model.fields,field_description:stock_picking_tier_validation.field_stock_picking__can_review -msgid "Can Review" -msgstr "Può revisionare" - -#. module: stock_picking_tier_validation -#: model:ir.model.fields,field_description:stock_picking_tier_validation.field_stock_picking__has_comment -msgid "Has Comment" -msgstr "Ha commenti" - -#. module: stock_picking_tier_validation -#: model:ir.model.fields,field_description:stock_picking_tier_validation.field_stock_picking__hide_reviews -msgid "Hide Reviews" -msgstr "Nascondi revisioni" - -#. module: stock_picking_tier_validation -#: model:ir.model.fields,help:stock_picking_tier_validation.field_stock_picking__has_comment -msgid "If set, Allow the reviewer to leave a comment on the review." -msgstr "" -"Se attivata, consente al revisore di lasciare un commento nella revisione." - -#. module: stock_picking_tier_validation -#: model:ir.model.fields,field_description:stock_picking_tier_validation.field_stock_picking__need_validation -msgid "Need Validation" -msgstr "Richiede conferma" - -#. module: stock_picking_tier_validation -#: model_terms:ir.ui.view,arch_db:stock_picking_tier_validation.view_picking_internal_search -msgid "Needs my Review" -msgstr "Richiede la mia revisione" - -#. module: stock_picking_tier_validation -#: model:ir.model.fields,field_description:stock_picking_tier_validation.field_stock_picking__next_review -msgid "Next Review" -msgstr "Prossima revisione" - -#. module: stock_picking_tier_validation -#: model:ir.model.fields,field_description:stock_picking_tier_validation.field_stock_picking__rejected -msgid "Rejected" -msgstr "Respinto" - -#. module: stock_picking_tier_validation -#: model:ir.model.fields,field_description:stock_picking_tier_validation.field_stock_picking__rejected_message -msgid "Rejected Message" -msgstr "Messaggio di rifiuto" - -#. module: stock_picking_tier_validation -#: model:ir.model.fields,field_description:stock_picking_tier_validation.field_stock_picking__reviewer_ids -msgid "Reviewers" -msgstr "Revisori" - -#. module: stock_picking_tier_validation -#. odoo-python -#: code:addons/stock_picking_tier_validation/models/stock_picking.py:0 -msgid "" -"This action needs to be validated for at least one record. \n" -"Please request a validation." -msgstr "" -"Questa azione richiede di essere approvata per almeno un record.\n" -"Prego richiedere un'approvazione." - -#. module: stock_picking_tier_validation -#: model:ir.model,name:stock_picking_tier_validation.model_tier_definition -msgid "Tier Definition" -msgstr "Definizione livello" - -#. module: stock_picking_tier_validation -#: model:ir.model.fields,field_description:stock_picking_tier_validation.field_stock_picking__to_validate_message -msgid "To Validate Message" -msgstr "Messaggio per 'Da validare'" - -#. module: stock_picking_tier_validation -#: model:ir.model,name:stock_picking_tier_validation.model_stock_picking -msgid "Transfer" -msgstr "Trasferimento" - -#. module: stock_picking_tier_validation -#: model_terms:ir.ui.view,arch_db:stock_picking_tier_validation.view_picking_internal_search -msgid "Transfers to review" -msgstr "Trasferimenti da revisionare" - -#. module: stock_picking_tier_validation -#: model_terms:ir.ui.view,arch_db:stock_picking_tier_validation.view_picking_internal_search -msgid "Transfers validated and ready to be done" -msgstr "Trasferimenti validati e pronti per essere eseguiti" - -#. module: stock_picking_tier_validation -#: model:ir.model.fields,field_description:stock_picking_tier_validation.field_stock_picking__validated -#: model_terms:ir.ui.view,arch_db:stock_picking_tier_validation.view_picking_internal_search -msgid "Validated" -msgstr "Validato" - -#. module: stock_picking_tier_validation -#: model:ir.model.fields,field_description:stock_picking_tier_validation.field_stock_picking__validated_message -msgid "Validated Message" -msgstr "Messaggio per 'Validato'" - -#. module: stock_picking_tier_validation -#: model:ir.model.fields,field_description:stock_picking_tier_validation.field_stock_picking__validation_status -msgid "Validation Status" -msgstr "Stato validazione" - -#. module: stock_picking_tier_validation -#: model:ir.model.fields,field_description:stock_picking_tier_validation.field_stock_picking__review_ids -msgid "Validations" -msgstr "Validazioni" diff --git a/stock_picking_tier_validation/i18n/stock_picking_tier_validation.pot b/stock_picking_tier_validation/i18n/stock_picking_tier_validation.pot deleted file mode 100644 index 7cebfe4a8..000000000 --- a/stock_picking_tier_validation/i18n/stock_picking_tier_validation.pot +++ /dev/null @@ -1,140 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * stock_picking_tier_validation -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 19.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: stock_picking_tier_validation -#. odoo-python -#: code:addons/stock_picking_tier_validation/models/stock_picking.py:0 -msgid "A validation process is still open for at least one record." -msgstr "" - -#. module: stock_picking_tier_validation -#: model:ir.model.fields,field_description:stock_picking_tier_validation.field_stock_picking__can_forward -msgid "Can Forward" -msgstr "" - -#. module: stock_picking_tier_validation -#: model:ir.model.fields,field_description:stock_picking_tier_validation.field_stock_picking__can_review -msgid "Can Review" -msgstr "" - -#. module: stock_picking_tier_validation -#: model:ir.model.fields,field_description:stock_picking_tier_validation.field_stock_picking__display_name -#: model:ir.model.fields,field_description:stock_picking_tier_validation.field_tier_definition__display_name -msgid "Display Name" -msgstr "" - -#. module: stock_picking_tier_validation -#: model:ir.model.fields,field_description:stock_picking_tier_validation.field_stock_picking__has_comment -msgid "Has Comment" -msgstr "" - -#. module: stock_picking_tier_validation -#: model:ir.model.fields,field_description:stock_picking_tier_validation.field_stock_picking__hide_reviews -msgid "Hide Reviews" -msgstr "" - -#. module: stock_picking_tier_validation -#: model:ir.model.fields,field_description:stock_picking_tier_validation.field_stock_picking__id -#: model:ir.model.fields,field_description:stock_picking_tier_validation.field_tier_definition__id -msgid "ID" -msgstr "" - -#. module: stock_picking_tier_validation -#: model:ir.model.fields,help:stock_picking_tier_validation.field_stock_picking__has_comment -msgid "If set, Allow the reviewer to leave a comment on the review." -msgstr "" - -#. module: stock_picking_tier_validation -#: model:ir.model.fields,field_description:stock_picking_tier_validation.field_stock_picking__need_validation -msgid "Need Validation" -msgstr "" - -#. module: stock_picking_tier_validation -#: model_terms:ir.ui.view,arch_db:stock_picking_tier_validation.view_picking_internal_search -msgid "Needs my Review" -msgstr "" - -#. module: stock_picking_tier_validation -#: model:ir.model.fields,field_description:stock_picking_tier_validation.field_stock_picking__next_review -msgid "Next Review" -msgstr "" - -#. module: stock_picking_tier_validation -#: model:ir.model.fields,field_description:stock_picking_tier_validation.field_stock_picking__rejected_message -msgid "Rejected Message" -msgstr "" - -#. module: stock_picking_tier_validation -#: model:ir.model.fields,field_description:stock_picking_tier_validation.field_stock_picking__require_authentication -msgid "Require Authentication" -msgstr "" - -#. module: stock_picking_tier_validation -#: model:ir.model.fields,field_description:stock_picking_tier_validation.field_stock_picking__reviewer_ids -msgid "Reviewers" -msgstr "" - -#. module: stock_picking_tier_validation -#. odoo-python -#: code:addons/stock_picking_tier_validation/models/stock_picking.py:0 -msgid "" -"This action needs to be validated for at least one record. \n" -"Please request a validation." -msgstr "" - -#. module: stock_picking_tier_validation -#: model:ir.model,name:stock_picking_tier_validation.model_tier_definition -msgid "Tier Definition" -msgstr "" - -#. module: stock_picking_tier_validation -#: model:ir.model.fields,field_description:stock_picking_tier_validation.field_stock_picking__to_validate_message -msgid "To Validate Message" -msgstr "" - -#. module: stock_picking_tier_validation -#: model:ir.model,name:stock_picking_tier_validation.model_stock_picking -msgid "Transfer" -msgstr "" - -#. module: stock_picking_tier_validation -#: model_terms:ir.ui.view,arch_db:stock_picking_tier_validation.view_picking_internal_search -msgid "Transfers to review" -msgstr "" - -#. module: stock_picking_tier_validation -#: model_terms:ir.ui.view,arch_db:stock_picking_tier_validation.view_picking_internal_search -msgid "Transfers validated and ready to be done" -msgstr "" - -#. module: stock_picking_tier_validation -#: model_terms:ir.ui.view,arch_db:stock_picking_tier_validation.view_picking_internal_search -msgid "Validated" -msgstr "" - -#. module: stock_picking_tier_validation -#: model:ir.model.fields,field_description:stock_picking_tier_validation.field_stock_picking__validated_message -msgid "Validated Message" -msgstr "" - -#. module: stock_picking_tier_validation -#: model:ir.model.fields,field_description:stock_picking_tier_validation.field_stock_picking__validation_status -msgid "Validation Status" -msgstr "" - -#. module: stock_picking_tier_validation -#: model:ir.model.fields,field_description:stock_picking_tier_validation.field_stock_picking__review_ids -msgid "Validations" -msgstr "" diff --git a/stock_picking_tier_validation/models/__init__.py b/stock_picking_tier_validation/models/__init__.py deleted file mode 100644 index ef70a1761..000000000 --- a/stock_picking_tier_validation/models/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from . import stock_picking -from . import tier_definition diff --git a/stock_picking_tier_validation/models/stock_picking.py b/stock_picking_tier_validation/models/stock_picking.py deleted file mode 100644 index d8477517a..000000000 --- a/stock_picking_tier_validation/models/stock_picking.py +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright 2021 Ecosoft Co., Ltd. (http://ecosoft.co.th) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from odoo import models -from odoo.exceptions import ValidationError - - -class StockPicking(models.Model): - _name = "stock.picking" - _inherit = ["stock.picking", "tier.validation"] - _state_from = ["draft", "waiting", "confirmed", "assigned"] - _state_to = ["done", "approved"] - - _tier_validation_manual_config = False - - def button_validate(self): - for rec in self: - if rec.need_validation: - # try to validate operation - reviews = rec.request_validation() - rec._validate_tier(reviews) - if self.validation_status != "validated": - raise ValidationError( - self.env._( - "This action needs to be validated for at least " - "one record. \nPlease request a validation." - ) - ) - if rec.review_ids and rec.validation_status != "validated": - raise ValidationError( - self.env._( - "A validation process is still open for at least one record." - ) - ) - return super().button_validate() diff --git a/stock_picking_tier_validation/models/tier_definition.py b/stock_picking_tier_validation/models/tier_definition.py deleted file mode 100644 index b2ea390bb..000000000 --- a/stock_picking_tier_validation/models/tier_definition.py +++ /dev/null @@ -1,14 +0,0 @@ -# Copyright 2021 Ecosoft Co., Ltd. (http://ecosoft.co.th) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from odoo import api, models - - -class TierDefinition(models.Model): - _inherit = "tier.definition" - - @api.model - def _get_tier_validation_model_names(self): - res = super()._get_tier_validation_model_names() - res.append("stock.picking") - return res diff --git a/stock_picking_tier_validation/pyproject.toml b/stock_picking_tier_validation/pyproject.toml deleted file mode 100644 index 4231d0ccc..000000000 --- a/stock_picking_tier_validation/pyproject.toml +++ /dev/null @@ -1,3 +0,0 @@ -[build-system] -requires = ["whool"] -build-backend = "whool.buildapi" diff --git a/stock_picking_tier_validation/readme/CONFIGURE.md b/stock_picking_tier_validation/readme/CONFIGURE.md deleted file mode 100644 index 9fa939726..000000000 --- a/stock_picking_tier_validation/readme/CONFIGURE.md +++ /dev/null @@ -1,5 +0,0 @@ -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 Transfer model. diff --git a/stock_picking_tier_validation/readme/CONTRIBUTORS.md b/stock_picking_tier_validation/readme/CONTRIBUTORS.md deleted file mode 100644 index 5d2a6d085..000000000 --- a/stock_picking_tier_validation/readme/CONTRIBUTORS.md +++ /dev/null @@ -1,2 +0,0 @@ -- [Ecosoft](http://ecosoft.co.th): - - Pimolnat Suntian \<\> diff --git a/stock_picking_tier_validation/readme/DESCRIPTION.md b/stock_picking_tier_validation/readme/DESCRIPTION.md deleted file mode 100644 index 71946a65b..000000000 --- a/stock_picking_tier_validation/readme/DESCRIPTION.md +++ /dev/null @@ -1,2 +0,0 @@ -This module extends the functionality of Transfers to support a tier -validation process. diff --git a/stock_picking_tier_validation/readme/INSTALL.md b/stock_picking_tier_validation/readme/INSTALL.md deleted file mode 100644 index c45725c46..000000000 --- a/stock_picking_tier_validation/readme/INSTALL.md +++ /dev/null @@ -1,2 +0,0 @@ -This module depends on `base_tier_validation`. You can find it at -[OCA/server-ux](https://github.com/OCA/server-ux) diff --git a/stock_picking_tier_validation/readme/USAGE.md b/stock_picking_tier_validation/readme/USAGE.md deleted file mode 100644 index 1d72357b0..000000000 --- a/stock_picking_tier_validation/readme/USAGE.md +++ /dev/null @@ -1,15 +0,0 @@ -To use this module, you need to: - -1. Create a Transfer triggering at least one "Tier Definition". -2. Click on *Request Validation* button. -3. Under the tab *Reviews* have a look to pending reviews and their - statuses. -4. Once all reviews are validated click on *Validate*. - -Additional features: - -- You can filter the Transfers requesting your review through the filter - *Needs my Review*. -- User with rights to validate the Transfer (validate all tiers that - would be generated) can directly do the operation, this is, there is - no need for her/him to request a validation. diff --git a/stock_picking_tier_validation/static/description/icon.png b/stock_picking_tier_validation/static/description/icon.png deleted file mode 100644 index 3a0328b51..000000000 Binary files a/stock_picking_tier_validation/static/description/icon.png and /dev/null differ diff --git a/stock_picking_tier_validation/static/description/index.html b/stock_picking_tier_validation/static/description/index.html deleted file mode 100644 index 20f44dbae..000000000 --- a/stock_picking_tier_validation/static/description/index.html +++ /dev/null @@ -1,474 +0,0 @@ - - - - - -README.rst - - - -
- - - -Odoo Community Association - -
-

Stock Picking Tier Validation

- -

Alpha License: AGPL-3 OCA/tier-validation Translate me on Weblate Try me on Runboat

-

This module extends the functionality of Transfers to support a tier -validation process.

-
-

Important

-

This is an alpha version, the data model and design can change at any time without warning. -Only for development or testing purpose, do not use in production. -More details on development status

-
-

Table of contents

- -
-

Installation

-

This module depends on base_tier_validation. You can find it at -OCA/server-ux

-
-
-

Configuration

-

To configure this module, you need to:

-
    -
  1. Go to Settings > Technical > Tier Validations > Tier Definition.
  2. -
  3. Create as many tiers as you want for Transfer model.
  4. -
-
-
-

Usage

-

To use this module, you need to:

-
    -
  1. Create a Transfer triggering at least one “Tier Definition”.
  2. -
  3. Click on Request Validation button.
  4. -
  5. Under the tab Reviews have a look to pending reviews and their -statuses.
  6. -
  7. Once all reviews are validated click on Validate.
  8. -
-

Additional features:

-
    -
  • You can filter the Transfers requesting your review through the filter -Needs my Review.
  • -
  • User with rights to validate the Transfer (validate all tiers that -would be generated) can directly do the operation, this is, there is -no need for her/him to request a validation.
  • -
-
-
-

Bug Tracker

-

Bugs are tracked on GitHub 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.

-

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

-
-
-

Credits

-
-

Authors

-
    -
  • Ecosoft
  • -
-
-
-

Contributors

- -
-
-

Maintainers

-

This module is maintained by the OCA.

- -Odoo Community Association - -

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/tier-validation project on GitHub.

-

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

-
-
-
-
- - diff --git a/stock_picking_tier_validation/tests/__init__.py b/stock_picking_tier_validation/tests/__init__.py deleted file mode 100644 index f39596410..000000000 --- a/stock_picking_tier_validation/tests/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from . import test_tier_validation diff --git a/stock_picking_tier_validation/tests/test_tier_validation.py b/stock_picking_tier_validation/tests/test_tier_validation.py deleted file mode 100644 index 2f153c8ad..000000000 --- a/stock_picking_tier_validation/tests/test_tier_validation.py +++ /dev/null @@ -1,112 +0,0 @@ -# Copyright 2021 Ecosoft Co., Ltd. (http://ecosoft.co.th) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from odoo import Command -from odoo.exceptions import ValidationError -from odoo.tests import tagged -from odoo.tests.common import new_test_user - -from odoo.addons.base.tests.common import BaseCommon - - -@tagged("post_install", "-at_install") -class TestStockPickingTierValidation(BaseCommon): - @classmethod - def setUpClass(cls): - super().setUpClass() - cls.py_model = cls.env.ref("stock.model_stock_picking") - cls.product_model = cls.env["product.product"] - cls.test_user = new_test_user( - cls.env, - name="Test User", - login="test_user", - groups="base.group_system,stock.group_stock_user", - ) - cls.tier_def_obj = cls.env["tier.definition"] - cls.stock_picking_model = cls.env["stock.picking"] - cls.picking_type_in = cls.env.ref("stock.picking_type_in") - cls.location_stock = cls.env.ref("stock.stock_location_stock") - cls.location_supplier = cls.env.ref("stock.stock_location_suppliers") - cls.location_customer = cls.env.ref("stock.stock_location_customers") - cls.picking_type_out = cls.env.ref("stock.picking_type_out") - cls.tier_def_obj.create( - { - "model_id": cls.py_model.id, - "review_type": "individual", - "reviewer_id": cls.test_user.id, - "definition_domain": "[('state', '=', 'assigned')]", - } - ) - cls.product = cls.product_model.create( - { - "name": "test_product", - "type": "consu", - "is_storable": True, - "standard_price": 1.0, - "list_price": 1.0, - } - ) - - def _create_picking(self, picking_type, location, location_dest): - self.env["stock.quant"].create( - { - "product_id": self.product.id, - "location_id": location.id, - "quantity": 10, - } - ) - picking = self.stock_picking_model.create( - { - "picking_type_id": picking_type.id, - "location_id": location.id, - "location_dest_id": location_dest.id, - "move_ids": [ - Command.create( - { - "product_id": self.product.id, - "product_uom": self.product.uom_id.id, - "product_uom_qty": 3, - "location_id": location.id, - "location_dest_id": location_dest.id, - "price_unit": 10, - } - ), - ], - } - ) - return picking - - def _run_tier_validation_flow(self, picking_type, location_from, location_to): - picking = self._create_picking(picking_type, location_from, location_to) - picking.action_confirm() - picking.action_assign() - self.assertEqual(picking.state, "assigned", "the picking is not assigned") - msg_error_received = ( - r"(?s)This action needs to be validated for at least one record.\s+" - r"Please request a validation." - ) - with self.assertRaisesRegex(ValidationError, msg_error_received): - picking.button_validate() - - picking.request_validation() - picking.invalidate_model() - msg_error_open = ( - r"(?s)A validation process is still open for at least one record\." - ) - with self.assertRaisesRegex(ValidationError, msg_error_open): - picking.button_validate() - picking = picking.with_user(self.test_user) - picking.validate_tier() - picking.invalidate_model() - picking.button_validate() - self.assertEqual(picking.state, "done") - - def test_tier_validation_picking_in(self): - self._run_tier_validation_flow( - self.picking_type_in, self.location_supplier, self.location_stock - ) - - def test_tier_validation_picking_out(self): - self._run_tier_validation_flow( - self.picking_type_out, self.location_stock, self.location_customer - ) diff --git a/stock_picking_tier_validation/views/stock_picking_views.xml b/stock_picking_tier_validation/views/stock_picking_views.xml deleted file mode 100644 index 226900f34..000000000 --- a/stock_picking_tier_validation/views/stock_picking_views.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - stock.picking.internal.search - stock.picking - - - - - - - - - -