From 10fe74f125615bc710bd591ab051d7d4a916c2f4 Mon Sep 17 00:00:00 2001 From: kongrattapong Date: Tue, 28 Jan 2020 16:02:31 +0700 Subject: [PATCH 01/25] [13.0][ADD] purchase_isolated_rfq --- purchase_isolated_rfq/README.rst | 90 ++++ purchase_isolated_rfq/__init__.py | 2 + purchase_isolated_rfq/__manifest__.py | 14 + .../data/ir_sequence_data.xml | 12 + purchase_isolated_rfq/hooks.py | 13 + purchase_isolated_rfq/models/__init__.py | 1 + .../models/purchase_order.py | 82 ++++ purchase_isolated_rfq/readme/CONTRIBUTORS.rst | 1 + purchase_isolated_rfq/readme/DESCRIPTION.rst | 12 + purchase_isolated_rfq/readme/USAGE.rst | 2 + .../static/description/index.html | 435 ++++++++++++++++++ purchase_isolated_rfq/tests/__init__.py | 1 + .../tests/test_purchase_isolated_rfq.py | 33 ++ .../views/purchase_views.xml | 53 +++ 14 files changed, 751 insertions(+) create mode 100644 purchase_isolated_rfq/README.rst create mode 100644 purchase_isolated_rfq/__init__.py create mode 100644 purchase_isolated_rfq/__manifest__.py create mode 100644 purchase_isolated_rfq/data/ir_sequence_data.xml create mode 100644 purchase_isolated_rfq/hooks.py create mode 100644 purchase_isolated_rfq/models/__init__.py create mode 100644 purchase_isolated_rfq/models/purchase_order.py create mode 100644 purchase_isolated_rfq/readme/CONTRIBUTORS.rst create mode 100644 purchase_isolated_rfq/readme/DESCRIPTION.rst create mode 100644 purchase_isolated_rfq/readme/USAGE.rst create mode 100644 purchase_isolated_rfq/static/description/index.html create mode 100644 purchase_isolated_rfq/tests/__init__.py create mode 100644 purchase_isolated_rfq/tests/test_purchase_isolated_rfq.py create mode 100644 purchase_isolated_rfq/views/purchase_views.xml diff --git a/purchase_isolated_rfq/README.rst b/purchase_isolated_rfq/README.rst new file mode 100644 index 00000000000..8078b09a083 --- /dev/null +++ b/purchase_isolated_rfq/README.rst @@ -0,0 +1,90 @@ +===================== +Purchase Isolated RFQ +===================== + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! 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-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%2Fpurchase--workflow-lightgray.png?logo=github + :target: https://github.com/OCA/purchase-workflow/tree/13.0-add-purchase_isolated_quotation/purchase_isolated_rfq + :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-13-0-add-purchase_isolated_quotation/purchase-workflow-13-0-add-purchase_isolated_quotation-purchase_isolated_rfq + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/142/13.0-add-purchase_isolated_quotation + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +Note: This module is similar to sale_isolated_quotation, but for purchase/rfq + +In some countries/companies, It's already common to separate these two documents. +For filing purposes, the document sequence of Requests For Quotation (RFQ) and Purchases order +has to be separated. In practice, there could be multiple RFQ open +to a vendor, yet only one RFQ get converted to the Purchases order. + +This module separate RFQ and Purchases order by adding order_sequence flag in +purchase.order model. + +Each type of document will have separated sequence numbering. +RFQ will have only 2 state, Draft and Done. Purchases Order work as normal. + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +* Create RFQ as normal +* As user click "Convert to Order", the isolated purchases order will be created + +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 +~~~~~~~ + +* Ecosoft + +Contributors +~~~~~~~~~~~~ + +* Rattapong Chokmasermkul + +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/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_isolated_rfq/__init__.py b/purchase_isolated_rfq/__init__.py new file mode 100644 index 00000000000..1d353d71e70 --- /dev/null +++ b/purchase_isolated_rfq/__init__.py @@ -0,0 +1,2 @@ +from .hooks import post_init_hook +from . import models diff --git a/purchase_isolated_rfq/__manifest__.py b/purchase_isolated_rfq/__manifest__.py new file mode 100644 index 00000000000..52280c7e37d --- /dev/null +++ b/purchase_isolated_rfq/__manifest__.py @@ -0,0 +1,14 @@ +# Copyright 2020 Ecosoft Co., Ltd (https://ecosoft.co.th) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html) +{ + "name": "Purchase Isolated RFQ", + "version": "13.0.1.0.0", + "author": "Ecosoft, Odoo Community Association (OCA)", + "category": "Purchases", + "website": "https://github.com/OCA/purchase-workflow", + "depends": ["purchase"], + "license": "AGPL-3", + "data": ["data/ir_sequence_data.xml", "views/purchase_views.xml"], + "installable": True, + "post_init_hook": "post_init_hook", +} diff --git a/purchase_isolated_rfq/data/ir_sequence_data.xml b/purchase_isolated_rfq/data/ir_sequence_data.xml new file mode 100644 index 00000000000..567a14b349a --- /dev/null +++ b/purchase_isolated_rfq/data/ir_sequence_data.xml @@ -0,0 +1,12 @@ + + + + + Requests for Quotation + purchase.rfq + RFQ + 3 + + + + diff --git a/purchase_isolated_rfq/hooks.py b/purchase_isolated_rfq/hooks.py new file mode 100644 index 00000000000..aa36f8bc358 --- /dev/null +++ b/purchase_isolated_rfq/hooks.py @@ -0,0 +1,13 @@ +# Copyright 2020 Ecosoft Co., Ltd (https://ecosoft.co.th) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html) + + +def post_init_hook(cr, registry): + """ Set value for order_sequence on old records """ + cr.execute( + """ + update purchase_order + set order_sequence = true + where state not in ('draft', 'cancel') + """ + ) diff --git a/purchase_isolated_rfq/models/__init__.py b/purchase_isolated_rfq/models/__init__.py new file mode 100644 index 00000000000..9f03530643d --- /dev/null +++ b/purchase_isolated_rfq/models/__init__.py @@ -0,0 +1 @@ +from . import purchase_order diff --git a/purchase_isolated_rfq/models/purchase_order.py b/purchase_isolated_rfq/models/purchase_order.py new file mode 100644 index 00000000000..385446fe573 --- /dev/null +++ b/purchase_isolated_rfq/models/purchase_order.py @@ -0,0 +1,82 @@ +# Copyright 2020 Ecosoft Co., Ltd (https://ecosoft.co.th) +# 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 PurchaseOrder(models.Model): + _inherit = "purchase.order" + + order_sequence = fields.Boolean(string="Order Sequence", readonly=True, index=True) + quote_id = fields.Many2one( + comodel_name="purchase.order", + string="Quotation", + readonly=True, + ondelete="restrict", + copy=False, + help="For Purchases Order, this field references to its RFQ", + ) + purchase_order_id = fields.Many2one( + comodel_name="purchase.order", + string="Order", + readonly=True, + ondelete="restrict", + copy=False, + help="For RFQ, this field references to its Purchases Order", + ) + rfq_state = fields.Selection( + selection=[ + ("draft", "Draft"), + ("sent", "Mail Sent"), + ("cancel", "Cancelled"), + ("done", "Done"), + ], + string="RFQ Status", + readonly=True, + related="state", + help="Only relative RFQ states", + ) + + @api.model + def create(self, vals): + order_sequence = vals.get("order_sequence") or self.env.context.get( + "order_sequence" + ) + if not order_sequence and vals.get("name", "/") == "/": + vals["name"] = self.env["ir.sequence"].next_by_code("purchase.rfq") or "/" + return super().create(vals) + + def _prepare_order_from_rfq(self): + return { + "name": self.env["ir.sequence"].next_by_code("purchase.order") or "/", + "order_sequence": True, + "quote_id": self.id, + "partner_ref": self.partner_ref, + } + + def action_convert_to_order(self): + self.ensure_one() + if self.order_sequence: + raise UserError(_("Only quotation can convert to order")) + purchase_order = self.copy(self._prepare_order_from_rfq()) + purchase_order.button_confirm() + # Reference from this RFQ to Purchase Order + self.purchase_order_id = purchase_order.id + if self.state == "draft": + self.button_done() + return self.open_duplicated_purchase_order() + + @api.model + def open_duplicated_purchase_order(self): + return { + "name": _("Purchases Order"), + "view_mode": "form", + "view_id": False, + "res_model": "purchase.order", + "context": {"default_order_sequence": True, "order_sequence": True}, + "type": "ir.actions.act_window", + "nodestroy": True, + "target": "current", + "domain": "[('order_sequence', '=', True)]", + "res_id": self.purchase_order_id and self.purchase_order_id.id or False, + } diff --git a/purchase_isolated_rfq/readme/CONTRIBUTORS.rst b/purchase_isolated_rfq/readme/CONTRIBUTORS.rst new file mode 100644 index 00000000000..79207589486 --- /dev/null +++ b/purchase_isolated_rfq/readme/CONTRIBUTORS.rst @@ -0,0 +1 @@ +* Rattapong Chokmasermkul diff --git a/purchase_isolated_rfq/readme/DESCRIPTION.rst b/purchase_isolated_rfq/readme/DESCRIPTION.rst new file mode 100644 index 00000000000..7cd8fde472f --- /dev/null +++ b/purchase_isolated_rfq/readme/DESCRIPTION.rst @@ -0,0 +1,12 @@ +Note: This module is similar to sale_isolated_quotation, but for purchase/rfq + +In some countries/companies, It's already common to separate these two documents. +For filing purposes, the document sequence of Requests For Quotation (RFQ) and Purchases order +has to be separated. In practice, there could be multiple RFQ open +to a vendor, yet only one RFQ get converted to the Purchases order. + +This module separate RFQ and Purchases order by adding order_sequence flag in +purchase.order model. + +Each type of document will have separated sequence numbering. +RFQ will have only 2 state, Draft and Done. Purchases Order work as normal. diff --git a/purchase_isolated_rfq/readme/USAGE.rst b/purchase_isolated_rfq/readme/USAGE.rst new file mode 100644 index 00000000000..f703e3ad408 --- /dev/null +++ b/purchase_isolated_rfq/readme/USAGE.rst @@ -0,0 +1,2 @@ +* Create RFQ as normal +* As user click "Convert to Order", the isolated purchases order will be created diff --git a/purchase_isolated_rfq/static/description/index.html b/purchase_isolated_rfq/static/description/index.html new file mode 100644 index 00000000000..a34e96648e6 --- /dev/null +++ b/purchase_isolated_rfq/static/description/index.html @@ -0,0 +1,435 @@ + + + + + + +Purchase Isolated RFQ + + + +
+

Purchase Isolated RFQ

+ + +

Beta License: AGPL-3 OCA/purchase-workflow Translate me on Weblate Try me on Runbot

+

Note: This module is similar to sale_isolated_quotation, but for purchase/rfq

+

In some countries/companies, It’s already common to separate these two documents. +For filing purposes, the document sequence of Requests For Quotation (RFQ) and Purchases order +has to be separated. In practice, there could be multiple RFQ open +to a vendor, yet only one RFQ get converted to the Purchases order.

+

This module separate RFQ and Purchases order by adding order_sequence flag in +purchase.order model.

+

Each type of document will have separated sequence numbering. +RFQ will have only 2 state, Draft and Done. Purchases Order work as normal.

+

Table of contents

+ +
+

Usage

+
    +
  • Create RFQ as normal
  • +
  • As user click “Convert to Order”, the isolated purchases order will be created
  • +
+
+
+

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

+
    +
  • 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/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_isolated_rfq/tests/__init__.py b/purchase_isolated_rfq/tests/__init__.py new file mode 100644 index 00000000000..1e240f8aa90 --- /dev/null +++ b/purchase_isolated_rfq/tests/__init__.py @@ -0,0 +1 @@ +from . import test_purchase_isolated_rfq diff --git a/purchase_isolated_rfq/tests/test_purchase_isolated_rfq.py b/purchase_isolated_rfq/tests/test_purchase_isolated_rfq.py new file mode 100644 index 00000000000..3be46cf0d2f --- /dev/null +++ b/purchase_isolated_rfq/tests/test_purchase_isolated_rfq.py @@ -0,0 +1,33 @@ +# Copyright 2020 Ecosoft Co., Ltd (https://ecosoft.co.th) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html) +from odoo.exceptions import UserError +from odoo.tests.common import TransactionCase + + +class TestPurchaseIsolatedRFQ(TransactionCase): + def setUp(self): + super().setUp() + self.partner = self.env.ref("base.res_partner_2") + vals = {"partner_id": self.partner.id, "order_sequence": False} + self.rfq = self.env["purchase.order"].create(vals) + + def test_quotation_convert_to_order(self): + """ Expect. + - When quotation is converted to order + - Status chagned to 'done' + - New purchase.order of order_sequence = True created + - RFQ can reference to Order and Order can reference to RFQ too + """ + self.rfq.action_convert_to_order() + po = self.rfq.purchase_order_id + self.assertEqual(self.rfq.state, "done") + self.assertFalse(self.rfq.order_sequence) + self.assertTrue(po.order_sequence) + self.assertEqual(po.state, "purchase") + self.assertEqual(po.partner_id, self.partner) + self.assertEqual(po.quote_id, self.rfq) + # Exceptions Case + with self.assertRaises(UserError) as e: + po.action_convert_to_order() + error_message = "Only quotation can convert to order" + self.assertEqual(e.exception.name, error_message) diff --git a/purchase_isolated_rfq/views/purchase_views.xml b/purchase_isolated_rfq/views/purchase_views.xml new file mode 100644 index 00000000000..c0e6792ff20 --- /dev/null +++ b/purchase_isolated_rfq/views/purchase_views.xml @@ -0,0 +1,53 @@ + + + + purchase.order.form + purchase.order + + + + not context.get('order_sequence', False) + + +
+
+
+ + + + + + + {'order_sequence': order_sequence} + + +
+ + + + {'default_order_sequence': False, 'order_sequence': False} + [('order_sequence', '=', False)] + + + {'default_order_sequence': True, 'order_sequence': True} + [('order_sequence', '=', True)] + + +
From 3fb2ea1547bf81a044ae5db4242fc536cfc36e0b Mon Sep 17 00:00:00 2001 From: oca-travis Date: Fri, 21 Feb 2020 14:17:36 +0000 Subject: [PATCH 02/25] [UPD] Update purchase_isolated_rfq.pot --- .../i18n/purchase_isolated_rfq.pot | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 purchase_isolated_rfq/i18n/purchase_isolated_rfq.pot diff --git a/purchase_isolated_rfq/i18n/purchase_isolated_rfq.pot b/purchase_isolated_rfq/i18n/purchase_isolated_rfq.pot new file mode 100644 index 00000000000..f554ed3c9ca --- /dev/null +++ b/purchase_isolated_rfq/i18n/purchase_isolated_rfq.pot @@ -0,0 +1,76 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_isolated_rfq +# +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: purchase_isolated_rfq +#: model_terms:ir.ui.view,arch_db:purchase_isolated_rfq.purchase_order_form +msgid "Cancel" +msgstr "" + +#. module: purchase_isolated_rfq +#: model_terms:ir.ui.view,arch_db:purchase_isolated_rfq.purchase_order_form +msgid "Convert to Order" +msgstr "" + +#. module: purchase_isolated_rfq +#: model:ir.model.fields,help:purchase_isolated_rfq.field_purchase_order__quote_id +msgid "For Purchases Order, this field references to its RFQ" +msgstr "" + +#. module: purchase_isolated_rfq +#: model:ir.model.fields,help:purchase_isolated_rfq.field_purchase_order__purchase_order_id +msgid "For RFQ, this field references to its Purchases Order" +msgstr "" + +#. module: purchase_isolated_rfq +#: code:addons/purchase_isolated_rfq/models/purchase_order.py:0 +#, python-format +msgid "Only quotation can convert to order" +msgstr "" + +#. module: purchase_isolated_rfq +#: model:ir.model.fields,help:purchase_isolated_rfq.field_purchase_order__rfq_state +msgid "Only relative RFQ states" +msgstr "" + +#. module: purchase_isolated_rfq +#: model:ir.model.fields,field_description:purchase_isolated_rfq.field_purchase_order__purchase_order_id +msgid "Order" +msgstr "" + +#. module: purchase_isolated_rfq +#: model:ir.model.fields,field_description:purchase_isolated_rfq.field_purchase_order__order_sequence +msgid "Order Sequence" +msgstr "" + +#. module: purchase_isolated_rfq +#: model:ir.model,name:purchase_isolated_rfq.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_isolated_rfq +#: code:addons/purchase_isolated_rfq/models/purchase_order.py:0 +#, python-format +msgid "Purchases Order" +msgstr "" + +#. module: purchase_isolated_rfq +#: model:ir.model.fields,field_description:purchase_isolated_rfq.field_purchase_order__quote_id +msgid "Quotation" +msgstr "" + +#. module: purchase_isolated_rfq +#: model:ir.model.fields,field_description:purchase_isolated_rfq.field_purchase_order__rfq_state +msgid "RFQ Status" +msgstr "" From 56f85d325692963453fea44c285601e4f9115c87 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Fri, 21 Feb 2020 14:37:04 +0000 Subject: [PATCH 03/25] [UPD] README.rst --- purchase_isolated_rfq/README.rst | 10 +++++----- purchase_isolated_rfq/static/description/index.html | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/purchase_isolated_rfq/README.rst b/purchase_isolated_rfq/README.rst index 8078b09a083..a6fe4f84a40 100644 --- a/purchase_isolated_rfq/README.rst +++ b/purchase_isolated_rfq/README.rst @@ -14,13 +14,13 @@ Purchase Isolated RFQ :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpurchase--workflow-lightgray.png?logo=github - :target: https://github.com/OCA/purchase-workflow/tree/13.0-add-purchase_isolated_quotation/purchase_isolated_rfq + :target: https://github.com/OCA/purchase-workflow/tree/13.0/purchase_isolated_rfq :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-13-0-add-purchase_isolated_quotation/purchase-workflow-13-0-add-purchase_isolated_quotation-purchase_isolated_rfq + :target: https://translation.odoo-community.org/projects/purchase-workflow-13-0/purchase-workflow-13-0-purchase_isolated_rfq :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/142/13.0-add-purchase_isolated_quotation + :target: https://runbot.odoo-community.org/runbot/142/13.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -55,7 +55,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. @@ -85,6 +85,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/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_isolated_rfq/static/description/index.html b/purchase_isolated_rfq/static/description/index.html index a34e96648e6..6f0b21aee55 100644 --- a/purchase_isolated_rfq/static/description/index.html +++ b/purchase_isolated_rfq/static/description/index.html @@ -367,7 +367,7 @@

Purchase Isolated RFQ

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/purchase-workflow Translate me on Weblate Try me on Runbot

+

Beta License: AGPL-3 OCA/purchase-workflow Translate me on Weblate Try me on Runbot

Note: This module is similar to sale_isolated_quotation, but for purchase/rfq

In some countries/companies, It’s already common to separate these two documents. For filing purposes, the document sequence of Requests For Quotation (RFQ) and Purchases order @@ -402,7 +402,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.

@@ -426,7 +426,7 @@

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

From 03984253c8bcacb5caf28d30cc5a7f7be5d11ae3 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Fri, 21 Feb 2020 14:37:05 +0000 Subject: [PATCH 04/25] [ADD] icon.png --- .../static/description/icon.png | Bin 0 -> 9455 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 purchase_isolated_rfq/static/description/icon.png diff --git a/purchase_isolated_rfq/static/description/icon.png b/purchase_isolated_rfq/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 From f1d6ed9f3ea4d98feec5960c940b9528623b7878 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Sat, 14 Mar 2020 12:18:45 +0100 Subject: [PATCH 05/25] pre-commit update --- .../data/ir_sequence_data.xml | 4 +- .../views/purchase_views.xml | 77 ++++++++++++------- 2 files changed, 49 insertions(+), 32 deletions(-) diff --git a/purchase_isolated_rfq/data/ir_sequence_data.xml b/purchase_isolated_rfq/data/ir_sequence_data.xml index 567a14b349a..0c9279671f1 100644 --- a/purchase_isolated_rfq/data/ir_sequence_data.xml +++ b/purchase_isolated_rfq/data/ir_sequence_data.xml @@ -1,12 +1,10 @@ - Requests for Quotation purchase.rfq RFQ 3 - + - diff --git a/purchase_isolated_rfq/views/purchase_views.xml b/purchase_isolated_rfq/views/purchase_views.xml index c0e6792ff20..c9bb12b90bb 100644 --- a/purchase_isolated_rfq/views/purchase_views.xml +++ b/purchase_isolated_rfq/views/purchase_views.xml @@ -1,53 +1,72 @@ - purchase.order.form purchase.order - + - not context.get('order_sequence', False) + not context.get('order_sequence', False) -
-
- - - + + + - + {'order_sequence': order_sequence}
- - {'default_order_sequence': False, 'order_sequence': False} + {'default_order_sequence': False, 'order_sequence': False} [('order_sequence', '=', False)] - {'default_order_sequence': True, 'order_sequence': True} + {'default_order_sequence': True, 'order_sequence': True} [('order_sequence', '=', True)] -
From ccc4d5d9e5a6b1dd73ff38a1b444f1392c9476d2 Mon Sep 17 00:00:00 2001 From: Kitti U Date: Thu, 16 Jul 2020 17:22:42 +0700 Subject: [PATCH 06/25] [FIX] purchase_isolated_rfq, add uninstall_hook to restore original action domain/context --- purchase_isolated_rfq/__init__.py | 2 +- purchase_isolated_rfq/__manifest__.py | 2 ++ purchase_isolated_rfq/hooks.py | 33 +++++++++++++++++++++++++++ 3 files changed, 36 insertions(+), 1 deletion(-) diff --git a/purchase_isolated_rfq/__init__.py b/purchase_isolated_rfq/__init__.py index 1d353d71e70..1b071293581 100644 --- a/purchase_isolated_rfq/__init__.py +++ b/purchase_isolated_rfq/__init__.py @@ -1,2 +1,2 @@ -from .hooks import post_init_hook +from .hooks import post_init_hook, uninstall_hook from . import models diff --git a/purchase_isolated_rfq/__manifest__.py b/purchase_isolated_rfq/__manifest__.py index 52280c7e37d..33383f54f07 100644 --- a/purchase_isolated_rfq/__manifest__.py +++ b/purchase_isolated_rfq/__manifest__.py @@ -9,6 +9,8 @@ "depends": ["purchase"], "license": "AGPL-3", "data": ["data/ir_sequence_data.xml", "views/purchase_views.xml"], + "maintainers": ["kittiu"], "installable": True, + "uninstall_hook": "uninstall_hook", "post_init_hook": "post_init_hook", } diff --git a/purchase_isolated_rfq/hooks.py b/purchase_isolated_rfq/hooks.py index aa36f8bc358..a5d244deda8 100644 --- a/purchase_isolated_rfq/hooks.py +++ b/purchase_isolated_rfq/hooks.py @@ -1,5 +1,16 @@ # Copyright 2020 Ecosoft Co., Ltd (https://ecosoft.co.th) # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html) +import ast + +from odoo import SUPERUSER_ID, api + +ACTIONS = { + "purchase.purchase_rfq": {"dom": [], "ctx": {"quotation_only": True}}, + "purchase.purchase_form_action": { + "dom": [("state", "in", ("purchase", "done"))], + "ctx": {}, + }, +} def post_init_hook(cr, registry): @@ -11,3 +22,25 @@ def post_init_hook(cr, registry): where state not in ('draft', 'cancel') """ ) + + +def uninstall_hook(cr, registry): + """ Restore purchase.order action's domain/context """ + with api.Environment.manage(): + env = api.Environment(cr, SUPERUSER_ID, {}) + for action_id in ACTIONS: + action = env.ref(action_id) + # Clean context + ctx = ast.literal_eval(action.context) + if "order_sequence" in ctx: + del ctx["order_sequence"] + if "default_order_sequence" in ctx: + del ctx["default_order_sequence"] + # Clean domain + dom = ast.literal_eval(action.domain or "[]") + dom = [x for x in dom if x[0] != "order_sequence"] + # Assign original domain / context + dom += ACTIONS[action_id]["dom"] + dom = list(set(dom)) + ctx.update(ACTIONS[action_id]["ctx"]) + action.write({"context": ctx, "domain": dom}) From 11400797d5f920e70a28b6b1f7c4efd69cad44f9 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Tue, 10 Nov 2020 13:46:55 +0000 Subject: [PATCH 07/25] [UPD] README.rst --- purchase_isolated_rfq/README.rst | 8 ++++++++ purchase_isolated_rfq/static/description/index.html | 2 ++ 2 files changed, 10 insertions(+) diff --git a/purchase_isolated_rfq/README.rst b/purchase_isolated_rfq/README.rst index a6fe4f84a40..77057f7ed1c 100644 --- a/purchase_isolated_rfq/README.rst +++ b/purchase_isolated_rfq/README.rst @@ -85,6 +85,14 @@ 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/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_isolated_rfq/static/description/index.html b/purchase_isolated_rfq/static/description/index.html index 6f0b21aee55..71219f1828a 100644 --- a/purchase_isolated_rfq/static/description/index.html +++ b/purchase_isolated_rfq/static/description/index.html @@ -426,6 +426,8 @@

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.

+

Current maintainer:

+

kittiu

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.

From 8873b148eb4c7b8bca0e319e4ee20385f90027d9 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Tue, 10 Nov 2020 13:46:56 +0000 Subject: [PATCH 08/25] purchase_isolated_rfq 13.0.1.1.0 --- purchase_isolated_rfq/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/purchase_isolated_rfq/__manifest__.py b/purchase_isolated_rfq/__manifest__.py index 33383f54f07..bdea7168a70 100644 --- a/purchase_isolated_rfq/__manifest__.py +++ b/purchase_isolated_rfq/__manifest__.py @@ -2,7 +2,7 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html) { "name": "Purchase Isolated RFQ", - "version": "13.0.1.0.0", + "version": "13.0.1.1.0", "author": "Ecosoft, Odoo Community Association (OCA)", "category": "Purchases", "website": "https://github.com/OCA/purchase-workflow", From c0638b4292e7d0ee5ae5418b3cdc952552bd377c Mon Sep 17 00:00:00 2001 From: Kitti U Date: Thu, 3 Dec 2020 16:19:09 +0700 Subject: [PATCH 09/25] [13.0][FIX] purchase_isolated_rfq, fix cancel error --- purchase_isolated_rfq/views/purchase_views.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/purchase_isolated_rfq/views/purchase_views.xml b/purchase_isolated_rfq/views/purchase_views.xml index c9bb12b90bb..c697dc315ab 100644 --- a/purchase_isolated_rfq/views/purchase_views.xml +++ b/purchase_isolated_rfq/views/purchase_views.xml @@ -22,7 +22,7 @@ string="Convert to Order" />