From 916fb73ed5a5b2b62f54481340484ab0a559cec8 Mon Sep 17 00:00:00 2001
From: Mateu Griful
Date: Tue, 20 Jul 2021 12:31:17 +0200
Subject: [PATCH 01/18] [ADD] account_move_tier_validation_approver
---
.../README.rst | 103 ++++
.../__init__.py | 1 +
.../__manifest__.py | 16 +
.../account_move_tier_validation_approver.pot | 83 ++++
.../models/__init__.py | 4 +
.../models/account_move.py | 31 ++
.../models/res_company.py | 15 +
.../models/res_config_settings.py | 41 ++
.../models/res_partner.py | 10 +
.../readme/CONFIGURE.rst | 8 +
.../readme/CONTRIBUTORS.rst | 2 +
.../readme/DESCRIPTION.rst | 2 +
.../readme/USAGE.rst | 12 +
.../static/description/icon.png | Bin 0 -> 9455 bytes
.../static/description/index.html | 446 ++++++++++++++++++
.../views/account_move_views.xml | 28 ++
.../views/res_config_settings_views.xml | 31 ++
.../views/res_partner_views.xml | 20 +
18 files changed, 853 insertions(+)
create mode 100644 account_move_tier_validation_approver/README.rst
create mode 100644 account_move_tier_validation_approver/__init__.py
create mode 100644 account_move_tier_validation_approver/__manifest__.py
create mode 100644 account_move_tier_validation_approver/i18n/account_move_tier_validation_approver.pot
create mode 100644 account_move_tier_validation_approver/models/__init__.py
create mode 100644 account_move_tier_validation_approver/models/account_move.py
create mode 100644 account_move_tier_validation_approver/models/res_company.py
create mode 100644 account_move_tier_validation_approver/models/res_config_settings.py
create mode 100644 account_move_tier_validation_approver/models/res_partner.py
create mode 100644 account_move_tier_validation_approver/readme/CONFIGURE.rst
create mode 100644 account_move_tier_validation_approver/readme/CONTRIBUTORS.rst
create mode 100644 account_move_tier_validation_approver/readme/DESCRIPTION.rst
create mode 100644 account_move_tier_validation_approver/readme/USAGE.rst
create mode 100644 account_move_tier_validation_approver/static/description/icon.png
create mode 100644 account_move_tier_validation_approver/static/description/index.html
create mode 100644 account_move_tier_validation_approver/views/account_move_views.xml
create mode 100644 account_move_tier_validation_approver/views/res_config_settings_views.xml
create mode 100644 account_move_tier_validation_approver/views/res_partner_views.xml
diff --git a/account_move_tier_validation_approver/README.rst b/account_move_tier_validation_approver/README.rst
new file mode 100644
index 000000000..5b2bec159
--- /dev/null
+++ b/account_move_tier_validation_approver/README.rst
@@ -0,0 +1,103 @@
+=====================================
+Account Move Tier Validation Approver
+=====================================
+
+.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! This file is generated by oca-gen-addon-readme !!
+ !! changes will be overwritten. !!
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+.. |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-LGPL--3-blue.png
+ :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
+ :alt: License: LGPL-3
+.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Faccount--invoicing-lightgray.png?logo=github
+ :target: https://github.com/OCA/account-invoicing/tree/13.0/account_move_tier_validation_approver
+ :alt: OCA/account-invoicing
+.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
+ :target: https://translation.odoo-community.org/projects/account-invoicing-13-0/account-invoicing-13-0-account_move_tier_validation_approver
+ :alt: Translate me on Weblate
+.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
+ :target: https://runbot.odoo-community.org/runbot/95/13.0
+ :alt: Try me on Runbot
+
+|badge1| |badge2| |badge3| |badge4| |badge5|
+
+This module allows to select a Responsible for approval in the partner form. If a tier definition is set and configured
+with the "Responsible for Approval" field, the approver will be the one chosen in the partner form.
+
+**Table of contents**
+
+.. contents::
+ :local:
+
+Configuration
+=============
+
+To configure this module, you need to:
+
+#. Go to *Settings > Technical > Tier Validations > Tier Definition*.
+#. Create a new tier or edit an existing one.
+#. Set the "Validated by" field to "Field in related record".
+#. Set the "Reviewer field" to "Responsible for Approval".
+
+A default tier validation called "Validation with Approver field" is set with this configuration.
+
+Usage
+=====
+
+You can assign a default user for approval associated to a supplier. In the
+partner form view, go to the *Sales and Purchase* tab, and into the *Purchase*
+section, and fill the field *Approver of Vendor Bills*.
+
+When you create a vendor bill the field *Responsible for Approval* will be
+filled in with the partner's default. You can change it if needed.
+
+Be aware that you won't be able to post a vendor bill unless you have indicated
+a Responsible for Approval.
+
+Used in connection with the module *Account Move Tier Validation* you can set
+up approvals specific to a department.
+
+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 smashing it by providing a detailed and welcomed
+`feedback `_.
+
+Do not contact contributors directly about support or help with technical issues.
+
+Credits
+=======
+
+Authors
+~~~~~~~
+
+* ForgeFlow
+
+Contributors
+~~~~~~~~~~~~
+
+* Lois Rilo
+* Adrià Gil Sorribes
+
+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/account-invoicing `_ 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_approver/__init__.py b/account_move_tier_validation_approver/__init__.py
new file mode 100644
index 000000000..0650744f6
--- /dev/null
+++ b/account_move_tier_validation_approver/__init__.py
@@ -0,0 +1 @@
+from . import models
diff --git a/account_move_tier_validation_approver/__manifest__.py b/account_move_tier_validation_approver/__manifest__.py
new file mode 100644
index 000000000..4add0d842
--- /dev/null
+++ b/account_move_tier_validation_approver/__manifest__.py
@@ -0,0 +1,16 @@
+# Copyright 2021 ForgeFlow, S.L.
+# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
+{
+ "name": "Account Move Tier Validation Approver",
+ "version": "13.0.1.0.0",
+ "author": "ForgeFlow, Odoo Community Association (OCA)",
+ "category": "Accounting",
+ "license": "LGPL-3",
+ "depends": ["account_move_tier_validation"],
+ "data": [
+ "views/account_move_views.xml",
+ "views/res_partner_views.xml",
+ "views/res_config_settings_views.xml",
+ ],
+ "installable": True,
+}
diff --git a/account_move_tier_validation_approver/i18n/account_move_tier_validation_approver.pot b/account_move_tier_validation_approver/i18n/account_move_tier_validation_approver.pot
new file mode 100644
index 000000000..c51cf34b4
--- /dev/null
+++ b/account_move_tier_validation_approver/i18n/account_move_tier_validation_approver.pot
@@ -0,0 +1,83 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * account_move_tier_validation_approver
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 13.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_approver
+#: model_terms:ir.ui.view,arch_db:account_move_tier_validation_approver.res_config_settings_view_form
+msgid ""
+""
+msgstr ""
+
+#. module: account_move_tier_validation_approver
+#: model:ir.model.fields,field_description:account_move_tier_validation_approver.field_res_partner__approver_id
+#: model:ir.model.fields,field_description:account_move_tier_validation_approver.field_res_users__approver_id
+msgid "Approver of Vendor Bills"
+msgstr ""
+
+#. module: account_move_tier_validation_approver
+#: model:ir.model.fields,field_description:account_move_tier_validation_approver.field_res_company__validation_approver_tier_definition_id
+msgid "Bill approval tier definition"
+msgstr ""
+
+#. module: account_move_tier_validation_approver
+#: model:ir.model,name:account_move_tier_validation_approver.model_res_company
+msgid "Companies"
+msgstr ""
+
+#. module: account_move_tier_validation_approver
+#: model:ir.model,name:account_move_tier_validation_approver.model_res_config_settings
+msgid "Config Settings"
+msgstr ""
+
+#. module: account_move_tier_validation_approver
+#: model:ir.model,name:account_move_tier_validation_approver.model_res_partner
+msgid "Contact"
+msgstr ""
+
+#. module: account_move_tier_validation_approver
+#: code:addons/account_move_tier_validation_approver/models/account_move.py:0
+#, python-format
+msgid "It is mandatory to indicate a Responsible for Approval"
+msgstr ""
+
+#. module: account_move_tier_validation_approver
+#: model:ir.model,name:account_move_tier_validation_approver.model_account_move
+msgid "Journal Entries"
+msgstr ""
+
+#. module: account_move_tier_validation_approver
+#: model:ir.model.fields,field_description:account_move_tier_validation_approver.field_res_config_settings__require_approver_in_vendor_bills
+msgid "Require Approver In Vendor Bills"
+msgstr ""
+
+#. module: account_move_tier_validation_approver
+#: model_terms:ir.ui.view,arch_db:account_move_tier_validation_approver.res_config_settings_view_form
+msgid "Require approver before posting vendor bills"
+msgstr ""
+
+#. module: account_move_tier_validation_approver
+#: model:ir.model.fields,field_description:account_move_tier_validation_approver.field_res_company__require_approver_in_vendor_bills
+msgid "Require approver in vendor bills"
+msgstr ""
+
+#. module: account_move_tier_validation_approver
+#: model:ir.model.fields,help:account_move_tier_validation_approver.field_res_config_settings__require_approver_in_vendor_bills
+msgid "Requires adding an approver before a vendor bill can be posted."
+msgstr ""
+
+#. module: account_move_tier_validation_approver
+#: model:ir.model.fields,field_description:account_move_tier_validation_approver.field_account_move__approver_id
+msgid "Responsible for Approval"
+msgstr ""
diff --git a/account_move_tier_validation_approver/models/__init__.py b/account_move_tier_validation_approver/models/__init__.py
new file mode 100644
index 000000000..516c5ccbd
--- /dev/null
+++ b/account_move_tier_validation_approver/models/__init__.py
@@ -0,0 +1,4 @@
+from . import account_move
+from . import res_partner
+from . import res_config_settings
+from . import res_company
diff --git a/account_move_tier_validation_approver/models/account_move.py b/account_move_tier_validation_approver/models/account_move.py
new file mode 100644
index 000000000..8be9e7eac
--- /dev/null
+++ b/account_move_tier_validation_approver/models/account_move.py
@@ -0,0 +1,31 @@
+# Copyright 2021 ForgeFlow, S.L.
+# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
+
+from odoo import _, api, fields, models
+from odoo.exceptions import UserError
+
+
+class AccountMove(models.Model):
+ _inherit = "account.move"
+
+ approver_id = fields.Many2one("res.users", string="Responsible for Approval")
+
+ @api.onchange("partner_id")
+ def _onchange_partner_approver_id(self):
+ if self.partner_id:
+ self.approver_id = self.partner_id.approver_id.id
+
+ def post(self):
+ for move in self:
+ require_approver_in_vendor_bills = (
+ move.company_id.require_approver_in_vendor_bills
+ )
+ if (
+ move.is_purchase_document(include_receipts=True)
+ and require_approver_in_vendor_bills
+ and not move.approver_id
+ ):
+ raise UserError(
+ _("It is mandatory to indicate a Responsible for Approval")
+ )
+ return super(AccountMove, self).post()
diff --git a/account_move_tier_validation_approver/models/res_company.py b/account_move_tier_validation_approver/models/res_company.py
new file mode 100644
index 000000000..a1452d089
--- /dev/null
+++ b/account_move_tier_validation_approver/models/res_company.py
@@ -0,0 +1,15 @@
+# Copyright 2020 ForgeFlow, S.L.
+# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html).
+
+from odoo import fields, models
+
+
+class ResCompany(models.Model):
+ _inherit = "res.company"
+
+ require_approver_in_vendor_bills = fields.Boolean(
+ string="Require approver in vendor bills"
+ )
+ validation_approver_tier_definition_id = fields.Many2one(
+ comodel_name="tier.definition", string="Bill approval tier definition"
+ )
diff --git a/account_move_tier_validation_approver/models/res_config_settings.py b/account_move_tier_validation_approver/models/res_config_settings.py
new file mode 100644
index 000000000..9ffe662f9
--- /dev/null
+++ b/account_move_tier_validation_approver/models/res_config_settings.py
@@ -0,0 +1,41 @@
+# Copyright 2020 ForgeFlow, S.L.
+# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html).
+
+from odoo import fields, models
+
+
+class ResConfigSettings(models.TransientModel):
+ _inherit = "res.config.settings"
+
+ require_approver_in_vendor_bills = fields.Boolean(
+ string="Require Approver In Vendor Bills",
+ help="Requires adding an approver before a vendor bill can be posted.",
+ related="company_id.require_approver_in_vendor_bills",
+ readonly=False,
+ )
+
+ def set_values(self):
+ tier_definition = self.company_id.validation_approver_tier_definition_id
+ if not tier_definition:
+ field = self.env["ir.model.fields"].search(
+ [("model", "=", "account.move"), ("name", "=", "approver_id")]
+ )
+ tier_definition = self.env["tier.definition"].create(
+ {
+ "model_id": self.env["ir.model"]
+ .search([("model", "=", "account.move")])
+ .id,
+ "review_type": "field",
+ "name": "Validation with Approver field",
+ "reviewer_field_id": field.id,
+ "definition_domain": "[('type', '=', 'in_invoice')]",
+ "approve_sequence": True,
+ "active": self.require_approver_in_vendor_bills,
+ }
+ )
+ self.company_id.validation_approver_tier_definition_id = tier_definition
+ if self.require_approver_in_vendor_bills:
+ tier_definition.action_unarchive()
+ else:
+ tier_definition.action_archive()
+ return super().set_values()
diff --git a/account_move_tier_validation_approver/models/res_partner.py b/account_move_tier_validation_approver/models/res_partner.py
new file mode 100644
index 000000000..93d37620c
--- /dev/null
+++ b/account_move_tier_validation_approver/models/res_partner.py
@@ -0,0 +1,10 @@
+# Copyright 2021 ForgeFlow, S.L.
+# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
+
+from odoo import fields, models
+
+
+class Partner(models.Model):
+ _inherit = "res.partner"
+
+ approver_id = fields.Many2one("res.users", string="Approver of Vendor Bills")
diff --git a/account_move_tier_validation_approver/readme/CONFIGURE.rst b/account_move_tier_validation_approver/readme/CONFIGURE.rst
new file mode 100644
index 000000000..4fdbf7360
--- /dev/null
+++ b/account_move_tier_validation_approver/readme/CONFIGURE.rst
@@ -0,0 +1,8 @@
+To configure this module, you need to:
+
+#. Go to *Settings > Technical > Tier Validations > Tier Definition*.
+#. Create a new tier or edit an existing one.
+#. Set the "Validated by" field to "Field in related record".
+#. Set the "Reviewer field" to "Responsible for Approval".
+
+A default tier validation called "Validation with Approver field" is set with this configuration.
diff --git a/account_move_tier_validation_approver/readme/CONTRIBUTORS.rst b/account_move_tier_validation_approver/readme/CONTRIBUTORS.rst
new file mode 100644
index 000000000..c32689f4f
--- /dev/null
+++ b/account_move_tier_validation_approver/readme/CONTRIBUTORS.rst
@@ -0,0 +1,2 @@
+* Lois Rilo
+* Adrià Gil Sorribes
diff --git a/account_move_tier_validation_approver/readme/DESCRIPTION.rst b/account_move_tier_validation_approver/readme/DESCRIPTION.rst
new file mode 100644
index 000000000..1bbcddab2
--- /dev/null
+++ b/account_move_tier_validation_approver/readme/DESCRIPTION.rst
@@ -0,0 +1,2 @@
+This module allows to select a Responsible for approval in the partner form. If a tier definition is set and configured
+with the "Responsible for Approval" field, the approver will be the one chosen in the partner form.
diff --git a/account_move_tier_validation_approver/readme/USAGE.rst b/account_move_tier_validation_approver/readme/USAGE.rst
new file mode 100644
index 000000000..9fa3340d9
--- /dev/null
+++ b/account_move_tier_validation_approver/readme/USAGE.rst
@@ -0,0 +1,12 @@
+You can assign a default user for approval associated to a supplier. In the
+partner form view, go to the *Sales and Purchase* tab, and into the *Purchase*
+section, and fill the field *Approver of Vendor Bills*.
+
+When you create a vendor bill the field *Responsible for Approval* will be
+filled in with the partner's default. You can change it if needed.
+
+Be aware that you won't be able to post a vendor bill unless you have indicated
+a Responsible for Approval.
+
+Used in connection with the module *Account Move Tier Validation* you can set
+up approvals specific to a department.
diff --git a/account_move_tier_validation_approver/static/description/icon.png b/account_move_tier_validation_approver/static/description/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d
GIT binary patch
literal 9455
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
z
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
Xviia!U7SGha1wx#SCgwmn*{w2TRX*I
literal 0
HcmV?d00001
diff --git a/account_move_tier_validation_approver/static/description/index.html b/account_move_tier_validation_approver/static/description/index.html
new file mode 100644
index 000000000..9ae3e7f50
--- /dev/null
+++ b/account_move_tier_validation_approver/static/description/index.html
@@ -0,0 +1,446 @@
+
+
+
+
+
+
+Account Move Tier Validation Approver
+
+
+
+
+
Account Move Tier Validation Approver
+
+
+
+
This module allows to select a Responsible for approval in the partner form. If a tier definition is set and configured
+with the “Responsible for Approval” field, the approver will be the one chosen in the partner form.
You can assign a default user for approval associated to a supplier. In the
+partner form view, go to the Sales and Purchase tab, and into the Purchase
+section, and fill the field Approver of Vendor Bills.
+
When you create a vendor bill the field Responsible for Approval will be
+filled in with the partner’s default. You can change it if needed.
+
Be aware that you won’t be able to post a vendor bill unless you have indicated
+a Responsible for Approval.
+
Used in connection with the module Account Move Tier Validation you can set
+up approvals specific to a department.
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 smashing it by providing a detailed and welcomed
+feedback.
+
Do not contact contributors directly about support or help with technical issues.
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 file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-
+
This module allows to select a Responsible for approval in the partner form. If a tier definition is set and configured
with the “Responsible for Approval” field, the approver will be the one chosen in the partner form.
Table of contents
From 68df45df320a02f367ce12e5a75811ac90fa8c3f Mon Sep 17 00:00:00 2001
From: Lois Rilo
Date: Tue, 27 Dec 2022 11:55:46 +0100
Subject: [PATCH 05/18] [FIX] manifest website links
---
account_move_tier_validation_approver/__manifest__.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/account_move_tier_validation_approver/__manifest__.py b/account_move_tier_validation_approver/__manifest__.py
index 19d26f0ad..7c4696c06 100644
--- a/account_move_tier_validation_approver/__manifest__.py
+++ b/account_move_tier_validation_approver/__manifest__.py
@@ -7,6 +7,7 @@
"category": "Accounting",
"license": "AGPL-3",
"depends": ["account_move_tier_validation"],
+ "website": "https://github.com/OCA/account-invoicing",
"data": [
"views/account_move_views.xml",
"views/res_partner_views.xml",
From 3638604cb7cd37692b04673f58c3ecb44d52e284 Mon Sep 17 00:00:00 2001
From: Mateu Griful
Date: Fri, 20 Aug 2021 12:37:55 +0200
Subject: [PATCH 06/18] [14.0][MIG] account_move_tier_validation_approver
---
.../README.rst | 10 +++---
.../__manifest__.py | 4 +--
.../account_move_tier_validation_approver.pot | 32 +++++++++++++++++--
.../models/account_move.py | 10 +++---
.../models/res_company.py | 2 +-
.../models/res_config_settings.py | 4 +--
.../models/res_partner.py | 2 +-
.../static/description/index.html | 6 ++--
.../tests/__init__.py | 2 +-
...t_account_move_tier_validation_approver.py | 12 ++++---
.../views/account_move_views.xml | 4 +--
.../views/res_partner_views.xml | 2 +-
12 files changed, 60 insertions(+), 30 deletions(-)
diff --git a/account_move_tier_validation_approver/README.rst b/account_move_tier_validation_approver/README.rst
index 2f5ff7d8f..f1060a0e0 100644
--- a/account_move_tier_validation_approver/README.rst
+++ b/account_move_tier_validation_approver/README.rst
@@ -14,13 +14,13 @@ Account Move Tier Validation Approver
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Faccount--invoicing-lightgray.png?logo=github
- :target: https://github.com/OCA/account-invoicing/tree/13.0/account_move_tier_validation_approver
+ :target: https://github.com/OCA/account-invoicing/tree/14.0/account_move_tier_validation_approver
:alt: OCA/account-invoicing
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/account-invoicing-13-0/account-invoicing-13-0-account_move_tier_validation_approver
+ :target: https://translation.odoo-community.org/projects/account-invoicing-14-0/account-invoicing-14-0-account_move_tier_validation_approver
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/95/13.0
+ :target: https://runbot.odoo-community.org/runbot/95/14.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -67,7 +67,7 @@ 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 smashing it by providing a detailed and welcomed
-`feedback `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -98,6 +98,6 @@ 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/account-invoicing `_ project on GitHub.
+This module is part of the `OCA/account-invoicing `_ 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_approver/__manifest__.py b/account_move_tier_validation_approver/__manifest__.py
index 7c4696c06..0fffb4b34 100644
--- a/account_move_tier_validation_approver/__manifest__.py
+++ b/account_move_tier_validation_approver/__manifest__.py
@@ -1,8 +1,8 @@
# Copyright 2021 ForgeFlow, S.L.
-# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{
"name": "Account Move Tier Validation Approver",
- "version": "13.0.2.0.0",
+ "version": "14.0.1.0.0",
"author": "ForgeFlow, Odoo Community Association (OCA)",
"category": "Accounting",
"license": "AGPL-3",
diff --git a/account_move_tier_validation_approver/i18n/account_move_tier_validation_approver.pot b/account_move_tier_validation_approver/i18n/account_move_tier_validation_approver.pot
index c51cf34b4..230d2c4d0 100644
--- a/account_move_tier_validation_approver/i18n/account_move_tier_validation_approver.pot
+++ b/account_move_tier_validation_approver/i18n/account_move_tier_validation_approver.pot
@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 13.0\n"
+"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -46,15 +46,39 @@ msgstr ""
msgid "Contact"
msgstr ""
+#. module: account_move_tier_validation_approver
+#: model:ir.model.fields,field_description:account_move_tier_validation_approver.field_account_move__display_name
+#: model:ir.model.fields,field_description:account_move_tier_validation_approver.field_res_company__display_name
+#: model:ir.model.fields,field_description:account_move_tier_validation_approver.field_res_config_settings__display_name
+#: model:ir.model.fields,field_description:account_move_tier_validation_approver.field_res_partner__display_name
+msgid "Display Name"
+msgstr ""
+
+#. module: account_move_tier_validation_approver
+#: model:ir.model.fields,field_description:account_move_tier_validation_approver.field_account_move__id
+#: model:ir.model.fields,field_description:account_move_tier_validation_approver.field_res_company__id
+#: model:ir.model.fields,field_description:account_move_tier_validation_approver.field_res_config_settings__id
+#: model:ir.model.fields,field_description:account_move_tier_validation_approver.field_res_partner__id
+msgid "ID"
+msgstr ""
+
#. module: account_move_tier_validation_approver
#: code:addons/account_move_tier_validation_approver/models/account_move.py:0
#, python-format
-msgid "It is mandatory to indicate a Responsible for Approval"
+msgid "It is mandatory to indicate a Responsible for Approval (in {})"
msgstr ""
#. module: account_move_tier_validation_approver
#: model:ir.model,name:account_move_tier_validation_approver.model_account_move
-msgid "Journal Entries"
+msgid "Journal Entry"
+msgstr ""
+
+#. module: account_move_tier_validation_approver
+#: model:ir.model.fields,field_description:account_move_tier_validation_approver.field_account_move____last_update
+#: model:ir.model.fields,field_description:account_move_tier_validation_approver.field_res_company____last_update
+#: model:ir.model.fields,field_description:account_move_tier_validation_approver.field_res_config_settings____last_update
+#: model:ir.model.fields,field_description:account_move_tier_validation_approver.field_res_partner____last_update
+msgid "Last Modified on"
msgstr ""
#. module: account_move_tier_validation_approver
@@ -78,6 +102,8 @@ msgid "Requires adding an approver before a vendor bill can be posted."
msgstr ""
#. module: account_move_tier_validation_approver
+#: model:ir.model.fields,field_description:account_move_tier_validation_approver.field_account_bank_statement_line__approver_id
#: model:ir.model.fields,field_description:account_move_tier_validation_approver.field_account_move__approver_id
+#: model:ir.model.fields,field_description:account_move_tier_validation_approver.field_account_payment__approver_id
msgid "Responsible for Approval"
msgstr ""
diff --git a/account_move_tier_validation_approver/models/account_move.py b/account_move_tier_validation_approver/models/account_move.py
index 8be9e7eac..5c09bd2ee 100644
--- a/account_move_tier_validation_approver/models/account_move.py
+++ b/account_move_tier_validation_approver/models/account_move.py
@@ -1,5 +1,5 @@
# Copyright 2021 ForgeFlow, S.L.
-# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import _, api, fields, models
from odoo.exceptions import UserError
@@ -15,7 +15,7 @@ def _onchange_partner_approver_id(self):
if self.partner_id:
self.approver_id = self.partner_id.approver_id.id
- def post(self):
+ def _post(self, soft=True):
for move in self:
require_approver_in_vendor_bills = (
move.company_id.require_approver_in_vendor_bills
@@ -26,6 +26,8 @@ def post(self):
and not move.approver_id
):
raise UserError(
- _("It is mandatory to indicate a Responsible for Approval")
+ _(
+ "It is mandatory to indicate a Responsible for Approval (in {})"
+ ).format(move.name)
)
- return super(AccountMove, self).post()
+ return super()._post(soft)
diff --git a/account_move_tier_validation_approver/models/res_company.py b/account_move_tier_validation_approver/models/res_company.py
index a1452d089..d905721d1 100644
--- a/account_move_tier_validation_approver/models/res_company.py
+++ b/account_move_tier_validation_approver/models/res_company.py
@@ -1,5 +1,5 @@
# Copyright 2020 ForgeFlow, S.L.
-# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html).
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from odoo import fields, models
diff --git a/account_move_tier_validation_approver/models/res_config_settings.py b/account_move_tier_validation_approver/models/res_config_settings.py
index 9ffe662f9..1addb1999 100644
--- a/account_move_tier_validation_approver/models/res_config_settings.py
+++ b/account_move_tier_validation_approver/models/res_config_settings.py
@@ -1,5 +1,5 @@
# Copyright 2020 ForgeFlow, S.L.
-# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html).
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from odoo import fields, models
@@ -28,7 +28,7 @@ def set_values(self):
"review_type": "field",
"name": "Validation with Approver field",
"reviewer_field_id": field.id,
- "definition_domain": "[('type', '=', 'in_invoice')]",
+ "definition_domain": "[('move_type', '=', 'in_invoice')]",
"approve_sequence": True,
"active": self.require_approver_in_vendor_bills,
}
diff --git a/account_move_tier_validation_approver/models/res_partner.py b/account_move_tier_validation_approver/models/res_partner.py
index 93d37620c..e8df37e6a 100644
--- a/account_move_tier_validation_approver/models/res_partner.py
+++ b/account_move_tier_validation_approver/models/res_partner.py
@@ -1,5 +1,5 @@
# Copyright 2021 ForgeFlow, S.L.
-# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import fields, models
diff --git a/account_move_tier_validation_approver/static/description/index.html b/account_move_tier_validation_approver/static/description/index.html
index 82c6755f0..bccb16b49 100644
--- a/account_move_tier_validation_approver/static/description/index.html
+++ b/account_move_tier_validation_approver/static/description/index.html
@@ -367,7 +367,7 @@
Account Move Tier Validation Approver
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-
+
This module allows to select a Responsible for approval in the partner form. If a tier definition is set and configured
with the “Responsible for Approval” field, the approver will be the one chosen in the partner form.
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 smashing it by providing a detailed and welcomed
-feedback.
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.
diff --git a/account_move_tier_validation_approver/tests/__init__.py b/account_move_tier_validation_approver/tests/__init__.py
index f67f72059..2de1f82ab 100644
--- a/account_move_tier_validation_approver/tests/__init__.py
+++ b/account_move_tier_validation_approver/tests/__init__.py
@@ -1,3 +1,3 @@
-# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html).
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from . import test_account_move_tier_validation_approver
diff --git a/account_move_tier_validation_approver/tests/test_account_move_tier_validation_approver.py b/account_move_tier_validation_approver/tests/test_account_move_tier_validation_approver.py
index 0a1845a2c..c1b3efae0 100644
--- a/account_move_tier_validation_approver/tests/test_account_move_tier_validation_approver.py
+++ b/account_move_tier_validation_approver/tests/test_account_move_tier_validation_approver.py
@@ -1,5 +1,5 @@
# Copyright 2021 ForgeFlow (http://www.forgeflow.com)
-# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html).
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo.exceptions import ValidationError
from odoo.tests.common import TransactionCase
@@ -24,7 +24,7 @@ def setUp(self):
self.vendor_bill = self.env["account.move"].create(
[
{
- "type": "in_invoice",
+ "move_type": "in_invoice",
"partner_id": self.res_partner_1.id,
"currency_id": self.currency_euro.id,
"approver_id": self.test_approver.id,
@@ -44,7 +44,7 @@ def setUp(self):
]
)
self.model_id = self.env["ir.model"].search(
- [("name", "=", "Journal Entries")], limit=1
+ [("model", "=", "account.move")], limit=1
)
self.field_id = self.env["ir.model.fields"].search(
[("name", "=", "approver_id")], limit=1
@@ -61,11 +61,13 @@ def test_field_validation_approver(self):
"review_type": "field",
"reviewer_field_id": self.field_id.id,
"definition_type": "domain",
- "definition_domain": "[('type', '=', 'in_invoice')]",
+ "definition_domain": "[('move_type', '=', 'in_invoice')]",
}
)
record = self.vendor_bill
- record.write({"approver_id": self.test_approver.id})
+ record.write(
+ {"approver_id": self.test_approver.id, "invoice_date": record.date}
+ )
record.with_user(self.test_user_1.id).request_validation()
record.invalidate_cache()
record.with_user(self.test_user_1.id).validate_tier()
diff --git a/account_move_tier_validation_approver/views/account_move_views.xml b/account_move_tier_validation_approver/views/account_move_views.xml
index 9889b21f3..bc119a6ed 100644
--- a/account_move_tier_validation_approver/views/account_move_views.xml
+++ b/account_move_tier_validation_approver/views/account_move_views.xml
@@ -1,6 +1,6 @@
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
account.move.form
@@ -10,7 +10,7 @@
diff --git a/account_move_tier_validation_approver/views/res_partner_views.xml b/account_move_tier_validation_approver/views/res_partner_views.xml
index 12cdc20bc..1d3e94a07 100644
--- a/account_move_tier_validation_approver/views/res_partner_views.xml
+++ b/account_move_tier_validation_approver/views/res_partner_views.xml
@@ -1,6 +1,6 @@
-
+
From 991ad3bb5d1d949cbce633f78868f67c207d94a4 Mon Sep 17 00:00:00 2001
From: bosd
Date: Thu, 22 Jun 2023 17:20:07 +0200
Subject: [PATCH 07/18] [MIG] account_move_tier_validation_approver: Migration
to 15.0
---
.../__manifest__.py | 2 +-
.../views/res_partner_views.xml | 28 +++++++++----------
2 files changed, 14 insertions(+), 16 deletions(-)
diff --git a/account_move_tier_validation_approver/__manifest__.py b/account_move_tier_validation_approver/__manifest__.py
index 0fffb4b34..1379f9367 100644
--- a/account_move_tier_validation_approver/__manifest__.py
+++ b/account_move_tier_validation_approver/__manifest__.py
@@ -2,7 +2,7 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{
"name": "Account Move Tier Validation Approver",
- "version": "14.0.1.0.0",
+ "version": "15.0.1.0.0",
"author": "ForgeFlow, Odoo Community Association (OCA)",
"category": "Accounting",
"license": "AGPL-3",
diff --git a/account_move_tier_validation_approver/views/res_partner_views.xml b/account_move_tier_validation_approver/views/res_partner_views.xml
index 1d3e94a07..8ab4af16c 100644
--- a/account_move_tier_validation_approver/views/res_partner_views.xml
+++ b/account_move_tier_validation_approver/views/res_partner_views.xml
@@ -2,19 +2,17 @@
-
-
- res.partner.move_approve.user
- res.partner
-
-
-
-
-
-
-
-
+
+ res.partner.move_approve.user
+ res.partner
+
+
+
+
+
+
+
From c1fd144b9f811ba76fcc9e1c751ab6ce1db28338 Mon Sep 17 00:00:00 2001
From: Kevin Khao
Date: Sat, 2 Nov 2024 16:01:22 +0200
Subject: [PATCH 08/18] [IMP] pre-commit auto fixes
---
.../README.rst | 68 +++++++++-------
.../pyproject.toml | 3 +
.../readme/CONFIGURE.md | 10 +++
.../readme/CONFIGURE.rst | 8 --
.../readme/CONTRIBUTORS.md | 2 +
.../readme/CONTRIBUTORS.rst | 2 -
.../readme/DESCRIPTION.md | 4 +
.../readme/DESCRIPTION.rst | 2 -
.../readme/USAGE.md | 12 +++
.../readme/USAGE.rst | 12 ---
.../static/description/index.html | 81 ++++++++++---------
11 files changed, 112 insertions(+), 92 deletions(-)
create mode 100644 account_move_tier_validation_approver/pyproject.toml
create mode 100644 account_move_tier_validation_approver/readme/CONFIGURE.md
delete mode 100644 account_move_tier_validation_approver/readme/CONFIGURE.rst
create mode 100644 account_move_tier_validation_approver/readme/CONTRIBUTORS.md
delete mode 100644 account_move_tier_validation_approver/readme/CONTRIBUTORS.rst
create mode 100644 account_move_tier_validation_approver/readme/DESCRIPTION.md
delete mode 100644 account_move_tier_validation_approver/readme/DESCRIPTION.rst
create mode 100644 account_move_tier_validation_approver/readme/USAGE.md
delete mode 100644 account_move_tier_validation_approver/readme/USAGE.rst
diff --git a/account_move_tier_validation_approver/README.rst b/account_move_tier_validation_approver/README.rst
index f1060a0e0..b640ea408 100644
--- a/account_move_tier_validation_approver/README.rst
+++ b/account_move_tier_validation_approver/README.rst
@@ -2,10 +2,13 @@
Account Move Tier Validation Approver
=====================================
-.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+..
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! source digest: sha256:6417488b101536a3a97ee3b8daccdb426f184aedf9d884f364f29e6952a0278c
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
@@ -14,19 +17,21 @@ Account Move Tier Validation Approver
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Faccount--invoicing-lightgray.png?logo=github
- :target: https://github.com/OCA/account-invoicing/tree/14.0/account_move_tier_validation_approver
+ :target: https://github.com/OCA/account-invoicing/tree/18.0/account_move_tier_validation_approver
:alt: OCA/account-invoicing
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/account-invoicing-14-0/account-invoicing-14-0-account_move_tier_validation_approver
+ :target: https://translation.odoo-community.org/projects/account-invoicing-18-0/account-invoicing-18-0-account_move_tier_validation_approver
:alt: Translate me on Weblate
-.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/95/14.0
- :alt: Try me on Runbot
+.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
+ :target: https://runboat.odoo-community.org/builds?repo=OCA/account-invoicing&target_branch=18.0
+ :alt: Try me on Runboat
-|badge1| |badge2| |badge3| |badge4| |badge5|
+|badge1| |badge2| |badge3| |badge4| |badge5|
-This module allows to select a Responsible for approval in the partner form. If a tier definition is set and configured
-with the "Responsible for Approval" field, the approver will be the one chosen in the partner form.
+This module allows to select a Responsible for approval in the partner
+form. If a tier definition is set and configured with the "Responsible
+for Approval" field, the approver will be the one chosen in the partner
+form.
**Table of contents**
@@ -38,36 +43,37 @@ Configuration
To configure this module, you need to:
-#. Go to *Settings > Technical > Tier Validations > Tier Definition*.
-#. Create a new tier or edit an existing one.
-#. Set the "Validated by" field to "Field in related record".
-#. Set the "Reviewer field" to "Responsible for Approval".
+1. Go to *Settings > Technical > Tier Validations > Tier Definition*.
+2. Create a new tier or edit an existing one.
+3. Set the "Validated by" field to "Field in related record".
+4. Set the "Reviewer field" to "Responsible for Approval".
-A default tier validation called "Validation with Approver field" is set with this configuration.
+A default tier validation called "Validation with Approver field" is set
+with this configuration.
Usage
=====
-You can assign a default user for approval associated to a supplier. In the
-partner form view, go to the *Sales and Purchase* tab, and into the *Purchase*
-section, and fill the field *Approver of Vendor Bills*.
+You can assign a default user for approval associated to a supplier. In
+the partner form view, go to the *Sales and Purchase* tab, and into the
+*Purchase* section, and fill the field *Approver of Vendor Bills*.
-When you create a vendor bill the field *Responsible for Approval* will be
-filled in with the partner's default. You can change it if needed.
+When you create a vendor bill the field *Responsible for Approval* will
+be filled in with the partner's default. You can change it if needed.
-Be aware that you won't be able to post a vendor bill unless you have indicated
-a Responsible for Approval.
+Be aware that you won't be able to post a vendor bill unless you have
+indicated a Responsible for Approval.
-Used in connection with the module *Account Move Tier Validation* you can set
-up approvals specific to a department.
+Used in connection with the module *Account Move Tier Validation* you
+can set up approvals specific to a department.
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 smashing it by providing a detailed and welcomed
-`feedback `_.
+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.
@@ -75,18 +81,18 @@ Credits
=======
Authors
-~~~~~~~
+-------
* ForgeFlow
Contributors
-~~~~~~~~~~~~
+------------
-* Lois Rilo
-* Adrià Gil Sorribes
+- Lois Rilo
+- Adrià Gil Sorribes
Maintainers
-~~~~~~~~~~~
+-----------
This module is maintained by the OCA.
@@ -98,6 +104,6 @@ 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/account-invoicing `_ project on GitHub.
+This module is part of the `OCA/account-invoicing `_ 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_approver/pyproject.toml b/account_move_tier_validation_approver/pyproject.toml
new file mode 100644
index 000000000..4231d0ccc
--- /dev/null
+++ b/account_move_tier_validation_approver/pyproject.toml
@@ -0,0 +1,3 @@
+[build-system]
+requires = ["whool"]
+build-backend = "whool.buildapi"
diff --git a/account_move_tier_validation_approver/readme/CONFIGURE.md b/account_move_tier_validation_approver/readme/CONFIGURE.md
new file mode 100644
index 000000000..565bf10fb
--- /dev/null
+++ b/account_move_tier_validation_approver/readme/CONFIGURE.md
@@ -0,0 +1,10 @@
+To configure this module, you need to:
+
+1. Go to *Settings \> Technical \> Tier Validations \> Tier
+ Definition*.
+2. Create a new tier or edit an existing one.
+3. Set the "Validated by" field to "Field in related record".
+4. Set the "Reviewer field" to "Responsible for Approval".
+
+A default tier validation called "Validation with Approver field" is set
+with this configuration.
diff --git a/account_move_tier_validation_approver/readme/CONFIGURE.rst b/account_move_tier_validation_approver/readme/CONFIGURE.rst
deleted file mode 100644
index 4fdbf7360..000000000
--- a/account_move_tier_validation_approver/readme/CONFIGURE.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-To configure this module, you need to:
-
-#. Go to *Settings > Technical > Tier Validations > Tier Definition*.
-#. Create a new tier or edit an existing one.
-#. Set the "Validated by" field to "Field in related record".
-#. Set the "Reviewer field" to "Responsible for Approval".
-
-A default tier validation called "Validation with Approver field" is set with this configuration.
diff --git a/account_move_tier_validation_approver/readme/CONTRIBUTORS.md b/account_move_tier_validation_approver/readme/CONTRIBUTORS.md
new file mode 100644
index 000000000..690846b7a
--- /dev/null
+++ b/account_move_tier_validation_approver/readme/CONTRIBUTORS.md
@@ -0,0 +1,2 @@
+- Lois Rilo \<\>
+- Adrià Gil Sorribes \<\>
diff --git a/account_move_tier_validation_approver/readme/CONTRIBUTORS.rst b/account_move_tier_validation_approver/readme/CONTRIBUTORS.rst
deleted file mode 100644
index c32689f4f..000000000
--- a/account_move_tier_validation_approver/readme/CONTRIBUTORS.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-* Lois Rilo
-* Adrià Gil Sorribes
diff --git a/account_move_tier_validation_approver/readme/DESCRIPTION.md b/account_move_tier_validation_approver/readme/DESCRIPTION.md
new file mode 100644
index 000000000..088cf8d5a
--- /dev/null
+++ b/account_move_tier_validation_approver/readme/DESCRIPTION.md
@@ -0,0 +1,4 @@
+This module allows to select a Responsible for approval in the partner
+form. If a tier definition is set and configured with the "Responsible
+for Approval" field, the approver will be the one chosen in the partner
+form.
diff --git a/account_move_tier_validation_approver/readme/DESCRIPTION.rst b/account_move_tier_validation_approver/readme/DESCRIPTION.rst
deleted file mode 100644
index 1bbcddab2..000000000
--- a/account_move_tier_validation_approver/readme/DESCRIPTION.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-This module allows to select a Responsible for approval in the partner form. If a tier definition is set and configured
-with the "Responsible for Approval" field, the approver will be the one chosen in the partner form.
diff --git a/account_move_tier_validation_approver/readme/USAGE.md b/account_move_tier_validation_approver/readme/USAGE.md
new file mode 100644
index 000000000..0d7b786e2
--- /dev/null
+++ b/account_move_tier_validation_approver/readme/USAGE.md
@@ -0,0 +1,12 @@
+You can assign a default user for approval associated to a supplier. In
+the partner form view, go to the *Sales and Purchase* tab, and into the
+*Purchase* section, and fill the field *Approver of Vendor Bills*.
+
+When you create a vendor bill the field *Responsible for Approval* will
+be filled in with the partner's default. You can change it if needed.
+
+Be aware that you won't be able to post a vendor bill unless you have
+indicated a Responsible for Approval.
+
+Used in connection with the module *Account Move Tier Validation* you
+can set up approvals specific to a department.
diff --git a/account_move_tier_validation_approver/readme/USAGE.rst b/account_move_tier_validation_approver/readme/USAGE.rst
deleted file mode 100644
index 9fa3340d9..000000000
--- a/account_move_tier_validation_approver/readme/USAGE.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-You can assign a default user for approval associated to a supplier. In the
-partner form view, go to the *Sales and Purchase* tab, and into the *Purchase*
-section, and fill the field *Approver of Vendor Bills*.
-
-When you create a vendor bill the field *Responsible for Approval* will be
-filled in with the partner's default. You can change it if needed.
-
-Be aware that you won't be able to post a vendor bill unless you have indicated
-a Responsible for Approval.
-
-Used in connection with the module *Account Move Tier Validation* you can set
-up approvals specific to a department.
diff --git a/account_move_tier_validation_approver/static/description/index.html b/account_move_tier_validation_approver/static/description/index.html
index bccb16b49..b3527432a 100644
--- a/account_move_tier_validation_approver/static/description/index.html
+++ b/account_move_tier_validation_approver/static/description/index.html
@@ -1,20 +1,20 @@
-
-
+
Account Move Tier Validation Approver
-
This module allows to select a Responsible for approval in the partner
form. If a tier definition is set and configured with the “Responsible
for Approval” field, the approver will be the one chosen in the partner
@@ -389,7 +394,7 @@
You can assign a default user for approval associated to a supplier. In
the partner form view, go to the Sales and Purchase tab, and into the
Purchase section, and fill the field Approver of Vendor Bills.
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
@@ -421,15 +426,15 @@
This module allows to select a Responsible for approval in the partner
form. If a tier definition is set and configured with the “Responsible
for Approval” field, the approver will be the one chosen in the partner
@@ -419,10 +419,10 @@
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.
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.