From a35bd14e2f1b83fd4f9b6a803b52ead610ed5d6c Mon Sep 17 00:00:00 2001
From: Eduardo De Miguel
Date: Tue, 16 Apr 2024 12:33:24 +0200
Subject: [PATCH 1/6] [ADD] purchase_warn_option
---
purchase_warn_option/README.rst | 116 +++++
purchase_warn_option/__init__.py | 1 +
purchase_warn_option/__manifest__.py | 22 +
purchase_warn_option/i18n/es.po | 71 +++
.../i18n/purchase_warn_option.pot | 69 +++
purchase_warn_option/models/__init__.py | 3 +
.../models/product_template.py | 17 +
purchase_warn_option/models/res_partner.py | 17 +
purchase_warn_option/models/warn_option.py | 19 +
purchase_warn_option/readme/CONTEXT.md | 8 +
purchase_warn_option/readme/CONTRIBUTORS.md | 1 +
purchase_warn_option/readme/DESCRIPTION.md | 3 +
purchase_warn_option/readme/USAGE.md | 6 +
.../static/description/icon.png | Bin 0 -> 9455 bytes
.../static/description/index.html | 457 ++++++++++++++++++
purchase_warn_option/tests/__init__.py | 1 +
.../tests/test_warn_options.py | 69 +++
.../views/product_template_views.xml | 24 +
.../views/res_partner_views.xml | 24 +
19 files changed, 928 insertions(+)
create mode 100644 purchase_warn_option/README.rst
create mode 100644 purchase_warn_option/__init__.py
create mode 100644 purchase_warn_option/__manifest__.py
create mode 100644 purchase_warn_option/i18n/es.po
create mode 100644 purchase_warn_option/i18n/purchase_warn_option.pot
create mode 100644 purchase_warn_option/models/__init__.py
create mode 100644 purchase_warn_option/models/product_template.py
create mode 100644 purchase_warn_option/models/res_partner.py
create mode 100644 purchase_warn_option/models/warn_option.py
create mode 100644 purchase_warn_option/readme/CONTEXT.md
create mode 100644 purchase_warn_option/readme/CONTRIBUTORS.md
create mode 100644 purchase_warn_option/readme/DESCRIPTION.md
create mode 100644 purchase_warn_option/readme/USAGE.md
create mode 100644 purchase_warn_option/static/description/icon.png
create mode 100644 purchase_warn_option/static/description/index.html
create mode 100644 purchase_warn_option/tests/__init__.py
create mode 100644 purchase_warn_option/tests/test_warn_options.py
create mode 100644 purchase_warn_option/views/product_template_views.xml
create mode 100644 purchase_warn_option/views/res_partner_views.xml
diff --git a/purchase_warn_option/README.rst b/purchase_warn_option/README.rst
new file mode 100644
index 00000000000..8efb6150a0f
--- /dev/null
+++ b/purchase_warn_option/README.rst
@@ -0,0 +1,116 @@
+====================
+Purchase Warn Option
+====================
+
+..
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! This file is generated by oca-gen-addon-readme !!
+ !! changes will be overwritten. !!
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! source digest: sha256:37fde3f6af32026973ea02a550fad260f0738a51d8ffab62d63ff1fe08b38b3c
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+.. |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/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%2Fpurchase--workflow-lightgray.png?logo=github
+ :target: https://github.com/OCA/purchase-workflow/tree/15.0/purchase_warn_option
+ :alt: OCA/purchase-workflow
+.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
+ :target: https://translation.odoo-community.org/projects/purchase-workflow-15-0/purchase-workflow-15-0-purchase_warn_option
+ :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/purchase-workflow&target_branch=15.0
+ :alt: Try me on Runboat
+
+|badge1| |badge2| |badge3| |badge4| |badge5|
+
+This module extends the functionality of Supplier and Product blocking
+messages to support more consistency between messages and to allow you
+to set a blocking message quickly.
+
+.. 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:
+
+Use Cases / Context
+===================
+
+This module has been developed to maintain consistency in the messages
+used when blocking suppliers or products in purchase models.
+
+If you need this module for those reasons, these might interest you too:
+
+- sale_warn_option
+- account_warn_option
+- stock_warn_option
+
+Usage
+=====
+
+To use this module, you need to:
+
+- Go to a Supplier
+- Select Warn Options under *Warning on the Purchase Order*
+- Go to a Product
+- Select Warn Options under *Warning when Purchasing this Product*
+
+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
+-------
+
+* Moduon
+
+Contributors
+------------
+
+- Eduardo de Miguel (`Moduon `__)
+
+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-Shide| image:: https://github.com/Shide.png?size=40px
+ :target: https://github.com/Shide
+ :alt: Shide
+.. |maintainer-rafaelbn| image:: https://github.com/rafaelbn.png?size=40px
+ :target: https://github.com/rafaelbn
+ :alt: rafaelbn
+
+Current `maintainers `__:
+
+|maintainer-Shide| |maintainer-rafaelbn|
+
+This module is part of the `OCA/purchase-workflow `_ project on GitHub.
+
+You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/purchase_warn_option/__init__.py b/purchase_warn_option/__init__.py
new file mode 100644
index 00000000000..0650744f6bc
--- /dev/null
+++ b/purchase_warn_option/__init__.py
@@ -0,0 +1 @@
+from . import models
diff --git a/purchase_warn_option/__manifest__.py b/purchase_warn_option/__manifest__.py
new file mode 100644
index 00000000000..5d8eef42190
--- /dev/null
+++ b/purchase_warn_option/__manifest__.py
@@ -0,0 +1,22 @@
+# Copyright 2024 Moduon Team S.L.
+# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl-3.0)
+
+{
+ "name": "Purchase Warn Option",
+ "summary": "Add Options to Purchase Warn Messages",
+ "version": "15.0.1.0.0",
+ "development_status": "Alpha",
+ "category": "Inventory/Purchase",
+ "website": "https://github.com/OCA/purchase-workflow",
+ "author": "Moduon, Odoo Community Association (OCA)",
+ "maintainers": ["Shide", "rafaelbn"],
+ "license": "LGPL-3",
+ "application": False,
+ "installable": True,
+ "auto_install": True,
+ "depends": ["purchase", "base_warn_option"],
+ "data": [
+ "views/res_partner_views.xml",
+ "views/product_template_views.xml",
+ ],
+}
diff --git a/purchase_warn_option/i18n/es.po b/purchase_warn_option/i18n/es.po
new file mode 100644
index 00000000000..e479caa5446
--- /dev/null
+++ b/purchase_warn_option/i18n/es.po
@@ -0,0 +1,71 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * purchase_warn_option
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 15.0+e\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-04-11 09:09+0000\n"
+"PO-Revision-Date: 2024-04-11 11:11+0200\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: es\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: purchase_warn_option
+#: model:ir.model.fields.selection,name:purchase_warn_option.selection__warn_option__allowed_warning_usage__partner_purchase_warn
+msgid "(Partner) Warning on the Purchase Order"
+msgstr "(Contacto) Aviso en el pedido de compra"
+
+#. module: purchase_warn_option
+#: model:ir.model.fields.selection,name:purchase_warn_option.selection__warn_option__allowed_warning_usage__product_purchase_warn
+msgid "(Product) Warning when Purchasing this Product"
+msgstr "(Producto) Aviso cuando compra este producto"
+
+#. module: purchase_warn_option
+#: model:ir.model.fields,field_description:purchase_warn_option.field_warn_option__allowed_warning_usage
+msgid "Allowed Warning Usage"
+msgstr "Uso de la alerta permitida"
+
+#. module: purchase_warn_option
+#: model:ir.model.fields,help:purchase_warn_option.field_warn_option__allowed_warning_usage
+msgid "Allows to choose where the message can be selected"
+msgstr "Permite elegir dónde puede ser seleccionado el mensaje"
+
+#. module: purchase_warn_option
+#: model:ir.model,name:purchase_warn_option.model_res_partner
+msgid "Contact"
+msgstr "Contacto"
+
+#. module: purchase_warn_option
+#: model:ir.model,name:purchase_warn_option.model_product_template
+msgid "Product Template"
+msgstr "Plantilla de producto"
+
+#. module: purchase_warn_option
+#: model:ir.model.fields,field_description:purchase_warn_option.field_product_product__purchase_line_warn_option
+#: model:ir.model.fields,field_description:purchase_warn_option.field_product_template__purchase_line_warn_option
+msgid "Purchase Line Warn Option"
+msgstr "Opción de alerta en líneas de compras"
+
+#. module: purchase_warn_option
+#: model:ir.model.fields,field_description:purchase_warn_option.field_res_partner__purchase_warn_option
+#: model:ir.model.fields,field_description:purchase_warn_option.field_res_users__purchase_warn_option
+msgid "Purchase Warn Option"
+msgstr "Opción de alerta en compras"
+
+#. module: purchase_warn_option
+#: model_terms:ir.ui.view,arch_db:purchase_warn_option.purchase_warn_option_partner_form
+#: model_terms:ir.ui.view,arch_db:purchase_warn_option.purchase_warn_option_product_form
+msgid "Select a warning option"
+msgstr "Selecciona una opción de alerta"
+
+#. module: purchase_warn_option
+#: model:ir.model,name:purchase_warn_option.model_warn_option
+msgid "Warn Option"
+msgstr "Opción de alerta"
diff --git a/purchase_warn_option/i18n/purchase_warn_option.pot b/purchase_warn_option/i18n/purchase_warn_option.pot
new file mode 100644
index 00000000000..bd08363332f
--- /dev/null
+++ b/purchase_warn_option/i18n/purchase_warn_option.pot
@@ -0,0 +1,69 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * purchase_warn_option
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 15.0+e\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-04-11 09:09+0000\n"
+"PO-Revision-Date: 2024-04-11 09:09+0000\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_warn_option
+#: model:ir.model.fields.selection,name:purchase_warn_option.selection__warn_option__allowed_warning_usage__partner_purchase_warn
+msgid "(Partner) Warning on the Purchase Order"
+msgstr ""
+
+#. module: purchase_warn_option
+#: model:ir.model.fields.selection,name:purchase_warn_option.selection__warn_option__allowed_warning_usage__product_purchase_warn
+msgid "(Product) Warning when Purchasing this Product"
+msgstr ""
+
+#. module: purchase_warn_option
+#: model:ir.model.fields,field_description:purchase_warn_option.field_warn_option__allowed_warning_usage
+msgid "Allowed Warning Usage"
+msgstr ""
+
+#. module: purchase_warn_option
+#: model:ir.model.fields,help:purchase_warn_option.field_warn_option__allowed_warning_usage
+msgid "Allows to choose where the message can be selected"
+msgstr ""
+
+#. module: purchase_warn_option
+#: model:ir.model,name:purchase_warn_option.model_res_partner
+msgid "Contact"
+msgstr ""
+
+#. module: purchase_warn_option
+#: model:ir.model,name:purchase_warn_option.model_product_template
+msgid "Product Template"
+msgstr ""
+
+#. module: purchase_warn_option
+#: model:ir.model.fields,field_description:purchase_warn_option.field_product_product__purchase_line_warn_option
+#: model:ir.model.fields,field_description:purchase_warn_option.field_product_template__purchase_line_warn_option
+msgid "Purchase Line Warn Option"
+msgstr ""
+
+#. module: purchase_warn_option
+#: model:ir.model.fields,field_description:purchase_warn_option.field_res_partner__purchase_warn_option
+#: model:ir.model.fields,field_description:purchase_warn_option.field_res_users__purchase_warn_option
+msgid "Purchase Warn Option"
+msgstr ""
+
+#. module: purchase_warn_option
+#: model_terms:ir.ui.view,arch_db:purchase_warn_option.purchase_warn_option_partner_form
+#: model_terms:ir.ui.view,arch_db:purchase_warn_option.purchase_warn_option_product_form
+msgid "Select a warning option"
+msgstr ""
+
+#. module: purchase_warn_option
+#: model:ir.model,name:purchase_warn_option.model_warn_option
+msgid "Warn Option"
+msgstr ""
diff --git a/purchase_warn_option/models/__init__.py b/purchase_warn_option/models/__init__.py
new file mode 100644
index 00000000000..83dc48bdcf6
--- /dev/null
+++ b/purchase_warn_option/models/__init__.py
@@ -0,0 +1,3 @@
+from . import warn_option
+from . import res_partner
+from . import product_template
diff --git a/purchase_warn_option/models/product_template.py b/purchase_warn_option/models/product_template.py
new file mode 100644
index 00000000000..578898d6bf6
--- /dev/null
+++ b/purchase_warn_option/models/product_template.py
@@ -0,0 +1,17 @@
+# Copyright 2024 Moduon Team S.L.
+# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl-3.0)
+
+from odoo import api, fields, models
+
+
+class ProductTemplate(models.Model):
+ _inherit = "product.template"
+
+ purchase_line_warn_option = fields.Many2one(
+ comodel_name="warn.option",
+ )
+
+ @api.onchange("purchase_line_warn_option")
+ def _onchange_purchase_line_warn_option(self):
+ if self.purchase_line_warn != "no-message" and self.purchase_line_warn_option:
+ self.purchase_line_warn_msg = self.purchase_line_warn_option.name
diff --git a/purchase_warn_option/models/res_partner.py b/purchase_warn_option/models/res_partner.py
new file mode 100644
index 00000000000..6cc42200bcc
--- /dev/null
+++ b/purchase_warn_option/models/res_partner.py
@@ -0,0 +1,17 @@
+# Copyright 2024 Moduon Team S.L.
+# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl-3.0)
+
+from odoo import api, fields, models
+
+
+class ResPartner(models.Model):
+ _inherit = "res.partner"
+
+ purchase_warn_option = fields.Many2one(
+ comodel_name="warn.option",
+ )
+
+ @api.onchange("purchase_warn_option")
+ def _onchange_purchase_warn_option(self):
+ if self.purchase_warn != "no-message" and self.purchase_warn_option:
+ self.purchase_warn_msg = self.purchase_warn_option.name
diff --git a/purchase_warn_option/models/warn_option.py b/purchase_warn_option/models/warn_option.py
new file mode 100644
index 00000000000..626f0b85907
--- /dev/null
+++ b/purchase_warn_option/models/warn_option.py
@@ -0,0 +1,19 @@
+# Copyright 2024 Moduon Team S.L.
+# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl-3.0)
+
+from odoo import fields, models
+
+
+class WarnOption(models.Model):
+ _inherit = "warn.option"
+
+ allowed_warning_usage = fields.Selection(
+ selection_add=[
+ ("partner_purchase_warn", "(Partner) Warning on the Purchase Order"),
+ ("product_purchase_warn", "(Product) Warning when Purchasing this Product"),
+ ],
+ ondelete={
+ "partner_purchase_warn": "set default",
+ "product_purchase_warn": "set default",
+ },
+ )
diff --git a/purchase_warn_option/readme/CONTEXT.md b/purchase_warn_option/readme/CONTEXT.md
new file mode 100644
index 00000000000..2840df674b5
--- /dev/null
+++ b/purchase_warn_option/readme/CONTEXT.md
@@ -0,0 +1,8 @@
+This module has been developed to maintain consistency in the messages used when
+blocking suppliers or products in purchase models.
+
+If you need this module for those reasons, these might interest you too:
+
+- sale_warn_option
+- account_warn_option
+- stock_warn_option
diff --git a/purchase_warn_option/readme/CONTRIBUTORS.md b/purchase_warn_option/readme/CONTRIBUTORS.md
new file mode 100644
index 00000000000..310fc4ef78f
--- /dev/null
+++ b/purchase_warn_option/readme/CONTRIBUTORS.md
@@ -0,0 +1 @@
+- Eduardo de Miguel ([Moduon](https://www.moduon.team/))
diff --git a/purchase_warn_option/readme/DESCRIPTION.md b/purchase_warn_option/readme/DESCRIPTION.md
new file mode 100644
index 00000000000..4ccb363f10c
--- /dev/null
+++ b/purchase_warn_option/readme/DESCRIPTION.md
@@ -0,0 +1,3 @@
+This module extends the functionality of Supplier and Product blocking messages to
+support more consistency between messages and to allow you to set a blocking message
+quickly.
diff --git a/purchase_warn_option/readme/USAGE.md b/purchase_warn_option/readme/USAGE.md
new file mode 100644
index 00000000000..a3c871d113c
--- /dev/null
+++ b/purchase_warn_option/readme/USAGE.md
@@ -0,0 +1,6 @@
+To use this module, you need to:
+
+- Go to a Supplier
+- Select Warn Options under _Warning on the Purchase Order_
+- Go to a Product
+- Select Warn Options under _Warning when Purchasing this Product_
diff --git a/purchase_warn_option/static/description/icon.png b/purchase_warn_option/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/purchase_warn_option/static/description/index.html b/purchase_warn_option/static/description/index.html
new file mode 100644
index 00000000000..a070ce19f5f
--- /dev/null
+++ b/purchase_warn_option/static/description/index.html
@@ -0,0 +1,457 @@
+
+
+
+
+
+
+Purchase Warn Option
+
+
+
+
+
Purchase Warn Option
+
+
+

+
This module extends the functionality of Supplier and Product blocking
+messages to support more consistency between messages and to allow you
+to set a blocking message quickly.
+
+
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
+
+
+
+
This module has been developed to maintain consistency in the messages
+used when blocking suppliers or products in purchase models.
+
If you need this module for those reasons, these might interest you too:
+
+- sale_warn_option
+- account_warn_option
+- stock_warn_option
+
+
+
+
+
To use this module, you need to:
+
+- Go to a Supplier
+- Select Warn Options under Warning on the Purchase Order
+- Go to a Product
+- Select Warn Options under Warning when Purchasing this Product
+
+
+
+
+
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.
+
+
+
+
+
+
+
+
This module is maintained by the OCA.
+
+
+
+
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 maintainers:
+

+
This module is part of the OCA/purchase-workflow project on GitHub.
+
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
+
+
+
+
+
diff --git a/purchase_warn_option/tests/__init__.py b/purchase_warn_option/tests/__init__.py
new file mode 100644
index 00000000000..77e8919bd14
--- /dev/null
+++ b/purchase_warn_option/tests/__init__.py
@@ -0,0 +1 @@
+from . import test_warn_options
diff --git a/purchase_warn_option/tests/test_warn_options.py b/purchase_warn_option/tests/test_warn_options.py
new file mode 100644
index 00000000000..9369d588e97
--- /dev/null
+++ b/purchase_warn_option/tests/test_warn_options.py
@@ -0,0 +1,69 @@
+# Copyright 2024 Moduon Team S.L.
+# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl-3.0)
+
+from odoo.tests import Form
+from odoo.tests.common import TransactionCase
+
+
+class TestWarnOptions(TransactionCase):
+ @classmethod
+ def setUpClass(cls):
+ super().setUpClass()
+ cls.partner = cls.env["res.partner"].create(
+ {
+ "name": "Test Partner",
+ }
+ )
+ cls.partner_purchase_warn_warning = cls.env["warn.option"].create(
+ {
+ "name": "warning",
+ "allowed_warning_usage": "partner_purchase_warn",
+ "allowed_warning_type": "warning",
+ }
+ )
+ cls.partner_purchase_warn_blocking = cls.env["warn.option"].create(
+ {
+ "name": "block",
+ "allowed_warning_usage": "partner_purchase_warn",
+ "allowed_warning_type": "block",
+ }
+ )
+ cls.product = cls.env["product.template"].create(
+ {
+ "name": "Test Product",
+ }
+ )
+ cls.product_purchase_warn_warning = cls.env["warn.option"].create(
+ {
+ "name": "warning",
+ "allowed_warning_usage": "product_purchase_warn",
+ "allowed_warning_type": "warning",
+ }
+ )
+ cls.product_purchase_warn_blocking = cls.env["warn.option"].create(
+ {
+ "name": "block",
+ "allowed_warning_usage": "product_purchase_warn",
+ "allowed_warning_type": "block",
+ }
+ )
+
+ def test_partner_warn_options(self):
+ """Test Warn Options on Partner Form"""
+ with Form(self.partner) as partner_f:
+ partner_f.purchase_warn = "warning"
+ partner_f.purchase_warn_option = self.partner_purchase_warn_warning
+ self.assertEqual(partner_f.purchase_warn_msg, "warning")
+ partner_f.purchase_warn = "block"
+ partner_f.purchase_warn_option = self.partner_purchase_warn_blocking
+ self.assertEqual(partner_f.purchase_warn_msg, "block")
+
+ def test_product_warn_options(self):
+ """Test Warn Options on Product Form"""
+ with Form(self.product) as product_f:
+ product_f.purchase_line_warn = "warning"
+ product_f.purchase_line_warn_option = self.product_purchase_warn_warning
+ self.assertEqual(product_f.purchase_line_warn_msg, "warning")
+ product_f.purchase_line_warn = "block"
+ product_f.purchase_line_warn_option = self.product_purchase_warn_blocking
+ self.assertEqual(product_f.purchase_line_warn_msg, "block")
diff --git a/purchase_warn_option/views/product_template_views.xml b/purchase_warn_option/views/product_template_views.xml
new file mode 100644
index 00000000000..ae20cc5ce64
--- /dev/null
+++ b/purchase_warn_option/views/product_template_views.xml
@@ -0,0 +1,24 @@
+
+
+
+
+ purchase.warn.option.product.form
+ product.template
+
+
+
+
+
+
+
+
diff --git a/purchase_warn_option/views/res_partner_views.xml b/purchase_warn_option/views/res_partner_views.xml
new file mode 100644
index 00000000000..2dfadb35709
--- /dev/null
+++ b/purchase_warn_option/views/res_partner_views.xml
@@ -0,0 +1,24 @@
+
+
+
+
+ purchase.warn.option.partner.form
+ res.partner
+
+
+
+
+
+
+
+
From 17d333c5ceabad42a1720662dd60c8984458528e Mon Sep 17 00:00:00 2001
From: oca-ci
Date: Thu, 6 Jun 2024 15:08:59 +0000
Subject: [PATCH 2/6] [UPD] Update purchase_warn_option.pot
---
purchase_warn_option/i18n/purchase_warn_option.pot | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/purchase_warn_option/i18n/purchase_warn_option.pot b/purchase_warn_option/i18n/purchase_warn_option.pot
index bd08363332f..c5b0e2b1fbb 100644
--- a/purchase_warn_option/i18n/purchase_warn_option.pot
+++ b/purchase_warn_option/i18n/purchase_warn_option.pot
@@ -4,10 +4,8 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 15.0+e\n"
+"Project-Id-Version: Odoo Server 15.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-04-11 09:09+0000\n"
-"PO-Revision-Date: 2024-04-11 09:09+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
From 404cb23859264e865df79c1cdf0a364608550648 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sabrina=20Mart=C3=ADn?=
Date: Tue, 16 Dec 2025 14:41:26 +0000
Subject: [PATCH 3/6] [IMP] purchase_warn_option: pre-commit auto fixes
---
purchase_warn_option/pyproject.toml | 3 +++
1 file changed, 3 insertions(+)
create mode 100644 purchase_warn_option/pyproject.toml
diff --git a/purchase_warn_option/pyproject.toml b/purchase_warn_option/pyproject.toml
new file mode 100644
index 00000000000..4231d0cccb3
--- /dev/null
+++ b/purchase_warn_option/pyproject.toml
@@ -0,0 +1,3 @@
+[build-system]
+requires = ["whool"]
+build-backend = "whool.buildapi"
From 7a07810476ef2c5b8575435f9551042a5320c023 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sabrina=20Mart=C3=ADn?=
Date: Tue, 16 Dec 2025 15:22:56 +0000
Subject: [PATCH 4/6] [MIG] purchase_warn_option: Migration to 18.0
---
purchase_warn_option/README.rst | 29 +++++++-------
purchase_warn_option/__manifest__.py | 2 +-
purchase_warn_option/readme/CONTRIBUTORS.md | 1 +
purchase_warn_option/readme/USAGE.md | 6 ++-
.../static/description/index.html | 14 ++++---
.../tests/test_warn_options.py | 39 ++++++++++++-------
.../views/product_template_views.xml | 2 +-
.../views/res_partner_views.xml | 4 +-
8 files changed, 57 insertions(+), 40 deletions(-)
diff --git a/purchase_warn_option/README.rst b/purchase_warn_option/README.rst
index 8efb6150a0f..05c04d561b6 100644
--- a/purchase_warn_option/README.rst
+++ b/purchase_warn_option/README.rst
@@ -17,13 +17,13 @@ Purchase Warn Option
:target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
:alt: License: LGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpurchase--workflow-lightgray.png?logo=github
- :target: https://github.com/OCA/purchase-workflow/tree/15.0/purchase_warn_option
+ :target: https://github.com/OCA/purchase-workflow/tree/18.0/purchase_warn_option
:alt: OCA/purchase-workflow
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/purchase-workflow-15-0/purchase-workflow-15-0-purchase_warn_option
+ :target: https://translation.odoo-community.org/projects/purchase-workflow-18-0/purchase-workflow-18-0-purchase_warn_option
: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/purchase-workflow&target_branch=15.0
+ :target: https://runboat.odoo-community.org/builds?repo=OCA/purchase-workflow&target_branch=18.0
:alt: Try me on Runboat
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -50,19 +50,21 @@ used when blocking suppliers or products in purchase models.
If you need this module for those reasons, these might interest you too:
-- sale_warn_option
-- account_warn_option
-- stock_warn_option
+- sale_warn_option
+- account_warn_option
+- stock_warn_option
Usage
=====
To use this module, you need to:
-- Go to a Supplier
-- Select Warn Options under *Warning on the Purchase Order*
-- Go to a Product
-- Select Warn Options under *Warning when Purchasing this Product*
+- Go to Purchase App > Configuration Menu > Settings
+- Under *Orders* check **Warnings** checkbox
+- Go to Orders > Vendors > Internal Notes Tab
+- Select Warn Options under *Warning on the Purchase Order*
+- Go to a Product > Purchase Tab
+- Select Warn Options under *Warning when Purchasing this Product*
Bug Tracker
===========
@@ -70,7 +72,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 to smash it by providing a detailed and welcomed
-`feedback `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -85,7 +87,8 @@ Authors
Contributors
------------
-- Eduardo de Miguel (`Moduon `__)
+- Eduardo de Miguel (`Moduon `__)
+- Sabrina Rodriguez (`Moduon `__)
Maintainers
-----------
@@ -111,6 +114,6 @@ Current `maintainers `__:
|maintainer-Shide| |maintainer-rafaelbn|
-This module is part of the `OCA/purchase-workflow `_ project on GitHub.
+This module is part of the `OCA/purchase-workflow `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/purchase_warn_option/__manifest__.py b/purchase_warn_option/__manifest__.py
index 5d8eef42190..534ea7c89a6 100644
--- a/purchase_warn_option/__manifest__.py
+++ b/purchase_warn_option/__manifest__.py
@@ -4,7 +4,7 @@
{
"name": "Purchase Warn Option",
"summary": "Add Options to Purchase Warn Messages",
- "version": "15.0.1.0.0",
+ "version": "18.0.1.0.0",
"development_status": "Alpha",
"category": "Inventory/Purchase",
"website": "https://github.com/OCA/purchase-workflow",
diff --git a/purchase_warn_option/readme/CONTRIBUTORS.md b/purchase_warn_option/readme/CONTRIBUTORS.md
index 310fc4ef78f..ae0aefa7d08 100644
--- a/purchase_warn_option/readme/CONTRIBUTORS.md
+++ b/purchase_warn_option/readme/CONTRIBUTORS.md
@@ -1 +1,2 @@
- Eduardo de Miguel ([Moduon](https://www.moduon.team/))
+- Sabrina Rodriguez ([Moduon](https://www.moduon.team/))
diff --git a/purchase_warn_option/readme/USAGE.md b/purchase_warn_option/readme/USAGE.md
index a3c871d113c..a5b64b0e740 100644
--- a/purchase_warn_option/readme/USAGE.md
+++ b/purchase_warn_option/readme/USAGE.md
@@ -1,6 +1,8 @@
To use this module, you need to:
-- Go to a Supplier
+- Go to Purchase App > Configuration Menu > Settings
+- Under _Orders_ check **Warnings** checkbox
+- Go to Orders > Vendors > Internal Notes Tab
- Select Warn Options under _Warning on the Purchase Order_
-- Go to a Product
+- Go to a Product > Purchase Tab
- Select Warn Options under _Warning when Purchasing this Product_
diff --git a/purchase_warn_option/static/description/index.html b/purchase_warn_option/static/description/index.html
index a070ce19f5f..f1e2ec1047e 100644
--- a/purchase_warn_option/static/description/index.html
+++ b/purchase_warn_option/static/description/index.html
@@ -1,4 +1,3 @@
-
@@ -370,7 +369,7 @@ Purchase Warn Option
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:37fde3f6af32026973ea02a550fad260f0738a51d8ffab62d63ff1fe08b38b3c
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-

+

This module extends the functionality of Supplier and Product blocking
messages to support more consistency between messages and to allow you
to set a blocking message quickly.
@@ -409,9 +408,11 @@
To use this module, you need to:
-- Go to a Supplier
+- Go to Purchase App > Configuration Menu > Settings
+- Under Orders check Warnings checkbox
+- Go to Orders > Vendors > Internal Notes Tab
- Select Warn Options under Warning on the Purchase Order
-- Go to a Product
+- Go to a Product > Purchase Tab
- Select Warn Options under Warning when Purchasing this Product
@@ -420,7 +421,7 @@
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.
@@ -448,7 +450,7 @@
promote its widespread use.
Current maintainers:

-
This module is part of the OCA/purchase-workflow project on GitHub.
+
This module is part of the OCA/purchase-workflow project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/purchase_warn_option/tests/test_warn_options.py b/purchase_warn_option/tests/test_warn_options.py
index 9369d588e97..ab6efeedb23 100644
--- a/purchase_warn_option/tests/test_warn_options.py
+++ b/purchase_warn_option/tests/test_warn_options.py
@@ -1,7 +1,6 @@
# Copyright 2024 Moduon Team S.L.
# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl-3.0)
-from odoo.tests import Form
from odoo.tests.common import TransactionCase
@@ -50,20 +49,30 @@ def setUpClass(cls):
def test_partner_warn_options(self):
"""Test Warn Options on Partner Form"""
- with Form(self.partner) as partner_f:
- partner_f.purchase_warn = "warning"
- partner_f.purchase_warn_option = self.partner_purchase_warn_warning
- self.assertEqual(partner_f.purchase_warn_msg, "warning")
- partner_f.purchase_warn = "block"
- partner_f.purchase_warn_option = self.partner_purchase_warn_blocking
- self.assertEqual(partner_f.purchase_warn_msg, "block")
+ partner_f = self.env["res.partner"].new(
+ {
+ "purchase_warn": "warning",
+ "purchase_warn_option": self.partner_purchase_warn_warning.id,
+ }
+ )
+ partner_f._onchange_purchase_warn_option()
+ self.assertEqual(partner_f.purchase_warn_msg, "warning")
+ partner_f.purchase_warn = "block"
+ partner_f.purchase_warn_option = self.partner_purchase_warn_blocking.id
+ partner_f._onchange_purchase_warn_option()
+ self.assertEqual(partner_f.purchase_warn_msg, "block")
def test_product_warn_options(self):
"""Test Warn Options on Product Form"""
- with Form(self.product) as product_f:
- product_f.purchase_line_warn = "warning"
- product_f.purchase_line_warn_option = self.product_purchase_warn_warning
- self.assertEqual(product_f.purchase_line_warn_msg, "warning")
- product_f.purchase_line_warn = "block"
- product_f.purchase_line_warn_option = self.product_purchase_warn_blocking
- self.assertEqual(product_f.purchase_line_warn_msg, "block")
+ product_f = self.env["product.template"].new(
+ {
+ "purchase_line_warn": "warning",
+ "purchase_line_warn_option": self.product_purchase_warn_warning.id,
+ }
+ )
+ product_f._onchange_purchase_line_warn_option()
+ self.assertEqual(product_f.purchase_line_warn_msg, "warning")
+ product_f.purchase_line_warn = "block"
+ product_f.purchase_line_warn_option = self.product_purchase_warn_blocking.id
+ product_f._onchange_purchase_line_warn_option()
+ self.assertEqual(product_f.purchase_line_warn_msg, "block")
diff --git a/purchase_warn_option/views/product_template_views.xml b/purchase_warn_option/views/product_template_views.xml
index ae20cc5ce64..a3cd8797cd0 100644
--- a/purchase_warn_option/views/product_template_views.xml
+++ b/purchase_warn_option/views/product_template_views.xml
@@ -12,7 +12,7 @@
name="purchase_line_warn_option"
domain="[('allowed_warning_type', '=', purchase_line_warn), ('allowed_warning_usage', 'in', ('all', 'product_purchase_warn'))]"
context="{'default_allowed_warning_usage': 'product_purchase_warn', 'default_allowed_warning_type': purchase_line_warn}"
- attrs="{'invisible':[('purchase_line_warn', 'in', (False, 'no-message'))]}"
+ invisible="purchase_line_warn in (False, 'no-message')"
placeholder="Select a warning option"
nolabel="1"
colspan="2"
diff --git a/purchase_warn_option/views/res_partner_views.xml b/purchase_warn_option/views/res_partner_views.xml
index 2dfadb35709..303f8094e2f 100644
--- a/purchase_warn_option/views/res_partner_views.xml
+++ b/purchase_warn_option/views/res_partner_views.xml
@@ -10,9 +10,9 @@
Date: Wed, 17 Dec 2025 10:58:20 +0000
Subject: [PATCH 5/6] [DON'T MERGE] test-requirements.txt
---
test-requirements.txt | 1 +
1 file changed, 1 insertion(+)
diff --git a/test-requirements.txt b/test-requirements.txt
index 66bc2cbae3f..2beb7e8f84d 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -1 +1,2 @@
odoo_test_helper
+odoo-addon-base_warn_option @ git+https://github.com/OCA/server-ux.git@refs/pull/1204/head#subdirectory=base_warn_option
From 5f6701c92203c8721832607265722c298bd4ac9b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sabrina=20Mart=C3=ADn?=
Date: Thu, 8 Jan 2026 08:56:07 +0000
Subject: [PATCH 6/6] [IMP] purchase_warn_option: Display messages without
warning type in block and warning message
---
purchase_warn_option/views/product_template_views.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/purchase_warn_option/views/product_template_views.xml b/purchase_warn_option/views/product_template_views.xml
index a3cd8797cd0..7d3938d740b 100644
--- a/purchase_warn_option/views/product_template_views.xml
+++ b/purchase_warn_option/views/product_template_views.xml
@@ -10,7 +10,7 @@