From 496ffccbe94cd4441f233c329b54838f999fc0a6 Mon Sep 17 00:00:00 2001 From: JordiMForgeFlow Date: Tue, 5 Oct 2021 14:25:34 +0200 Subject: [PATCH 01/16] [13.0][ADD] sale_order_line_delivery_state --- sale_order_line_delivery_state/README.rst | 87 ++++ sale_order_line_delivery_state/__init__.py | 1 + .../__manifest__.py | 16 + .../models/__init__.py | 1 + .../models/sale_order_line.py | 84 ++++ .../readme/CONTRIBUTORS.rst | 1 + .../readme/DESCRIPTION.rst | 15 + .../static/description/icon.png | Bin 0 -> 9455 bytes .../static/description/index.html | 431 ++++++++++++++++++ .../tests/__init__.py | 1 + .../tests/test_sale_line_delivery_state.py | 116 +++++ .../views/sale_order_views.xml | 37 ++ 12 files changed, 790 insertions(+) create mode 100644 sale_order_line_delivery_state/README.rst create mode 100644 sale_order_line_delivery_state/__init__.py create mode 100644 sale_order_line_delivery_state/__manifest__.py create mode 100644 sale_order_line_delivery_state/models/__init__.py create mode 100644 sale_order_line_delivery_state/models/sale_order_line.py create mode 100644 sale_order_line_delivery_state/readme/CONTRIBUTORS.rst create mode 100644 sale_order_line_delivery_state/readme/DESCRIPTION.rst create mode 100644 sale_order_line_delivery_state/static/description/icon.png create mode 100644 sale_order_line_delivery_state/static/description/index.html create mode 100644 sale_order_line_delivery_state/tests/__init__.py create mode 100644 sale_order_line_delivery_state/tests/test_sale_line_delivery_state.py create mode 100644 sale_order_line_delivery_state/views/sale_order_views.xml diff --git a/sale_order_line_delivery_state/README.rst b/sale_order_line_delivery_state/README.rst new file mode 100644 index 00000000000..8017a1ac8b8 --- /dev/null +++ b/sale_order_line_delivery_state/README.rst @@ -0,0 +1,87 @@ +============================== +Sale Order Line Delivery State +============================== + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! 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%2Fsale--workflow-lightgray.png?logo=github + :target: https://github.com/OCA/sale-workflow/tree/13.0/sale_delivery_state + :alt: OCA/sale-workflow +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/sale-workflow-13-0/sale-workflow-13-0-sale_delivery_state + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/167/13.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This odoo module add delivery state on the sale order line. It is based on the +module sale_delivery_state, which adds the field at sale order level. + +Delivery state is computed based on `qty_delivered` field on sale order line. + +The state of the sale order line can be forced to fully delivered in case +some quantities were cancelled by the customer and you consider you have +nothing more to deliver. + +Sale order lines can have products or services, as long as the field `qty_delivered` +is set, it will trigger the computation of delivery state. + +This module also works with delivery.carrier fees that are added as a +sale order line. Thoses line are special as they will never be considered delivered. +Delivery fees lines are ignored in the computation of the delivery state. + +**Table of contents** + +.. contents:: + :local: + +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 +~~~~~~~~~~~~ + +* Jordi Masvidal + +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/sale-workflow `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/sale_order_line_delivery_state/__init__.py b/sale_order_line_delivery_state/__init__.py new file mode 100644 index 00000000000..0650744f6bc --- /dev/null +++ b/sale_order_line_delivery_state/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/sale_order_line_delivery_state/__manifest__.py b/sale_order_line_delivery_state/__manifest__.py new file mode 100644 index 00000000000..7eef8f98013 --- /dev/null +++ b/sale_order_line_delivery_state/__manifest__.py @@ -0,0 +1,16 @@ +# Copyright 2021 ForgeFlow S.L. (https://www.forgeflow.com) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +{ + "name": "Sale Order Line Delivery State", + "summary": "Show the delivery state on the sale order line", + "version": "13.0.1.0.0", + "category": "Product", + "website": "https://github.com/OCA/sale-workflow", + "author": "ForgeFlow, Odoo Community Association (OCA)", + "license": "AGPL-3", + "installable": True, + "depends": ["sale"], + "data": ["views/sale_order_views.xml"], + "demo": [], +} diff --git a/sale_order_line_delivery_state/models/__init__.py b/sale_order_line_delivery_state/models/__init__.py new file mode 100644 index 00000000000..8eb9d1d4046 --- /dev/null +++ b/sale_order_line_delivery_state/models/__init__.py @@ -0,0 +1 @@ +from . import sale_order_line diff --git a/sale_order_line_delivery_state/models/sale_order_line.py b/sale_order_line_delivery_state/models/sale_order_line.py new file mode 100644 index 00000000000..1da092c41e2 --- /dev/null +++ b/sale_order_line_delivery_state/models/sale_order_line.py @@ -0,0 +1,84 @@ +# Copyright 2021 ForgeFlow S.L. (https://www.forgeflow.com) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import api, fields, models +from odoo.tools import float_compare, float_is_zero + + +class SaleOrderLine(models.Model): + _inherit = "sale.order.line" + + delivery_state = fields.Selection( + [ + ("no", "No delivery"), + ("unprocessed", "Unprocessed"), + ("partially", "Partially processed"), + ("done", "Done"), + ], + string="Delivery state", + # Compute method have a different name then the field because + # the method _compute_delivery_state already exist to compute + # the field delivery_set in odoo delivery module + compute="_compute_sale_line_delivery_state", + store=True, + ) + + force_delivery_state = fields.Boolean( + string="Force delivery state", + help=( + "Allow to enforce done state of delivery, for instance if some" + " quantities were cancelled" + ), + ) + + def _all_qty_delivered(self): + """ + Returns True if line has qty_delivered >= to ordered quantities + + :returns: boolean + """ + self.ensure_one() + precision = self.env["decimal.precision"].precision_get( + "Product Unit of Measure" + ) + return ( + float_compare( + self.qty_delivered, self.product_uom_qty, precision_digits=precision + ) + >= 0 + ) + + def _partially_delivered(self): + """ + Returns True if line has qty_delivered != to 0 and < ordered + quantities. + + :returns: boolean + """ + self.ensure_one() + precision = self.env["decimal.precision"].precision_get( + "Product Unit of Measure" + ) + return not float_is_zero(self.qty_delivered, precision_digits=precision) + + @api.depends("qty_delivered", "state", "force_delivery_state") + def _compute_sale_line_delivery_state(self): + """ + If `delivery` module is installed, lines with delivery costs are marked + as 'No delivery'. + """ + for line in self: + if line.state in ("draft", "cancel") or line._is_delivery(): + line.delivery_state = "no" + elif line.force_delivery_state or line._all_qty_delivered(): + line.delivery_state = "done" + elif line._partially_delivered(): + line.delivery_state = "partially" + else: + line.delivery_state = "unprocessed" + + def action_force_delivery_state(self): + self.write({"force_delivery_state": True}) + + def action_unforce_delivery_state(self): + self.write({"force_delivery_state": False}) diff --git a/sale_order_line_delivery_state/readme/CONTRIBUTORS.rst b/sale_order_line_delivery_state/readme/CONTRIBUTORS.rst new file mode 100644 index 00000000000..e4263e418aa --- /dev/null +++ b/sale_order_line_delivery_state/readme/CONTRIBUTORS.rst @@ -0,0 +1 @@ +* Jordi Masvidal diff --git a/sale_order_line_delivery_state/readme/DESCRIPTION.rst b/sale_order_line_delivery_state/readme/DESCRIPTION.rst new file mode 100644 index 00000000000..7c8967a15c7 --- /dev/null +++ b/sale_order_line_delivery_state/readme/DESCRIPTION.rst @@ -0,0 +1,15 @@ +This odoo module add delivery state on the sale order line. It is based on the +module sale_delivery_state, which adds the field at sale order level. + +Delivery state is computed based on `qty_delivered` field on sale order line. + +The state of the sale order line can be forced to fully delivered in case +some quantities were cancelled by the customer and you consider you have +nothing more to deliver. + +Sale order lines can have products or services, as long as the field `qty_delivered` +is set, it will trigger the computation of delivery state. + +This module also works with delivery.carrier fees that are added as a +sale order line. Thoses line are special as they will never be considered delivered. +Delivery fees lines are ignored in the computation of the delivery state. diff --git a/sale_order_line_delivery_state/static/description/icon.png b/sale_order_line_delivery_state/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/sale_order_line_delivery_state/static/description/index.html b/sale_order_line_delivery_state/static/description/index.html new file mode 100644 index 00000000000..1229246010d --- /dev/null +++ b/sale_order_line_delivery_state/static/description/index.html @@ -0,0 +1,431 @@ + + + + + + +Sale delivery State + + + +
+

Sale delivery State

+ + +

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

+

This odoo module add delivery state on the sale order.

+

Delivery state is computed based on qty_delivered field on sale order lines.

+

This is usefull for other modules to provide the state of delivery. +The state of the sale order can be forced to fully delivered in case +some quantities were cancelled by the customer and you consider you have +nothing more to deliver.

+

Sale order lines can have products or services, as long as the field qty_delivered +is set, it will trigger the computation of delivery state.

+

This module also works with delivery.carrier fees that are added as a +sale order line. Thoses line are special as they will never be considered delivered. +Delivery fees lines are ignored in the computation of the delivery state.

+

Table of contents

+ +
+

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

+
    +
  • Akretion
  • +
+
+
+

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/sale-workflow project on GitHub.

+

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

+
+
+
+ + diff --git a/sale_order_line_delivery_state/tests/__init__.py b/sale_order_line_delivery_state/tests/__init__.py new file mode 100644 index 00000000000..cdeb70a84ea --- /dev/null +++ b/sale_order_line_delivery_state/tests/__init__.py @@ -0,0 +1 @@ +from . import test_sale_line_delivery_state diff --git a/sale_order_line_delivery_state/tests/test_sale_line_delivery_state.py b/sale_order_line_delivery_state/tests/test_sale_line_delivery_state.py new file mode 100644 index 00000000000..fe246689700 --- /dev/null +++ b/sale_order_line_delivery_state/tests/test_sale_line_delivery_state.py @@ -0,0 +1,116 @@ +# Copyright 2021 ForgeFlow S.L. (https://www.forgeflow.com) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +import mock + +from odoo.tests import SavepointCase + + +class TestSaleLineDeliveryState(SavepointCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.env = cls.env(context=dict(cls.env.context, tracking_disable=True)) + # Base data + partner = cls.env.ref("base.res_partner_2") + product = cls.env.ref("product.product_product_25") + pricelist = cls.env.ref("product.list0") + cls.uom = cls.env.ref("uom.product_uom_unit") + # Create delivery product + cls.delivery_cost = cls.env["product.product"].create( + {"name": "delivery", "type": "service"} + ) + # Create sales order + cls.order = cls.env["sale.order"].create( + { + "partner_id": partner.id, + "pricelist_id": pricelist.id, + "order_line": [ + ( + 0, + 0, + { + "product_id": product.id, + "product_uom": cls.uom.id, + "product_uom_qty": 3, + "price_unit": 2950.00, + "name": product.name, + }, + ) + ], + } + ) + + def _mock_delivery(self, delivery_prod=None): + delivery_prod = delivery_prod or self.delivery_cost + return mock.patch.object( + type(self.env["sale.order.line"]), + "_is_delivery", + lambda self: self.product_id == delivery_prod, + ) + + def _add_delivery_cost_line(self): + self.env["sale.order.line"].create( + { + "order_id": self.order.id, + "name": "Delivery cost", + "product_id": self.delivery_cost.id, + "product_uom_qty": 1, + "product_uom": self.uom.id, + "price_unit": 10.0, + } + ) + + def test_no_delivery(self): + self.assertEqual(self.order.order_line[0].delivery_state, "no") + + def test_unprocessed_delivery(self): + self.order.action_confirm() + self.assertEqual(self.order.order_line[0].delivery_state, "unprocessed") + + def test_partially(self): + self.order.action_confirm() + self.order.order_line[0].qty_delivered = 2 + self.assertEqual(self.order.order_line[0].delivery_state, "partially") + + def test_delivery_done(self): + self.order.action_confirm() + self.order.order_line[0].qty_delivered = 3 + self.assertEqual(self.order.order_line[0].delivery_state, "done") + + def test_no_delivery_delivery_cost(self): + self._add_delivery_cost_line() + with self._mock_delivery(): + self.assertEqual(self.order.order_line[1].delivery_state, "no") + + def test_unprocessed_delivery_delivery_cost(self): + self._add_delivery_cost_line() + with self._mock_delivery(): + self.order.action_confirm() + self.assertEqual(self.order.order_line[0].delivery_state, "unprocessed") + self.assertEqual(self.order.order_line[1].delivery_state, "no") + + def test_partially_delivery_cost(self): + self._add_delivery_cost_line() + with self._mock_delivery(): + self.order.action_confirm() + self.order.order_line[0].qty_delivered = 2 + self.assertEqual(self.order.order_line[0].delivery_state, "partially") + self.assertEqual(self.order.order_line[1].delivery_state, "no") + + def test_forced_delivery_cost(self): + self._add_delivery_cost_line() + with self._mock_delivery(): + self.order.action_confirm() + self.order.order_line[0].qty_delivered = 2 + self.order.order_line[0].force_delivery_state = True + self.assertEqual(self.order.order_line[0].delivery_state, "done") + self.assertEqual(self.order.order_line[1].delivery_state, "no") + + def test_delivery_done_delivery_cost(self): + self._add_delivery_cost_line() + with self._mock_delivery(): + self.order.action_confirm() + self.order.order_line[0].qty_delivered = 3 + self.assertEqual(self.order.order_line[0].delivery_state, "done") + self.assertEqual(self.order.order_line[1].delivery_state, "no") diff --git a/sale_order_line_delivery_state/views/sale_order_views.xml b/sale_order_line_delivery_state/views/sale_order_views.xml new file mode 100644 index 00000000000..cb94bddfcb3 --- /dev/null +++ b/sale_order_line_delivery_state/views/sale_order_views.xml @@ -0,0 +1,37 @@ + + + + sale.order.form - sale_order_line_delivery_state + sale.order + + + + + + + + + + From 435243c81afc7ed3d5aa7fa4c5b54834e8fb0a3b Mon Sep 17 00:00:00 2001 From: oca-travis Date: Fri, 8 Oct 2021 10:04:09 +0000 Subject: [PATCH 02/16] [UPD] Update sale_order_line_delivery_state.pot --- .../i18n/sale_order_line_delivery_state.pot | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 sale_order_line_delivery_state/i18n/sale_order_line_delivery_state.pot diff --git a/sale_order_line_delivery_state/i18n/sale_order_line_delivery_state.pot b/sale_order_line_delivery_state/i18n/sale_order_line_delivery_state.pot new file mode 100644 index 00000000000..f972ac86577 --- /dev/null +++ b/sale_order_line_delivery_state/i18n/sale_order_line_delivery_state.pot @@ -0,0 +1,71 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_order_line_delivery_state +# +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: sale_order_line_delivery_state +#: model:ir.model.fields,help:sale_order_line_delivery_state.field_sale_order_line__force_delivery_state +msgid "" +"Allow to enforce done state of delivery, for instance if some quantities " +"were cancelled" +msgstr "" + +#. module: sale_order_line_delivery_state +#: model_terms:ir.ui.view,arch_db:sale_order_line_delivery_state.view_order_form +msgid "Delivery State" +msgstr "" + +#. module: sale_order_line_delivery_state +#: model:ir.model.fields,field_description:sale_order_line_delivery_state.field_sale_order_line__delivery_state +msgid "Delivery state" +msgstr "" + +#. module: sale_order_line_delivery_state +#: model:ir.model.fields.selection,name:sale_order_line_delivery_state.selection__sale_order_line__delivery_state__done +msgid "Done" +msgstr "" + +#. module: sale_order_line_delivery_state +#: model_terms:ir.ui.view,arch_db:sale_order_line_delivery_state.view_order_form +msgid "Force delivery done" +msgstr "" + +#. module: sale_order_line_delivery_state +#: model:ir.model.fields,field_description:sale_order_line_delivery_state.field_sale_order_line__force_delivery_state +msgid "Force delivery state" +msgstr "" + +#. module: sale_order_line_delivery_state +#: model:ir.model.fields.selection,name:sale_order_line_delivery_state.selection__sale_order_line__delivery_state__no +msgid "No delivery" +msgstr "" + +#. module: sale_order_line_delivery_state +#: model:ir.model.fields.selection,name:sale_order_line_delivery_state.selection__sale_order_line__delivery_state__partially +msgid "Partially processed" +msgstr "" + +#. module: sale_order_line_delivery_state +#: model:ir.model,name:sale_order_line_delivery_state.model_sale_order_line +msgid "Sales Order Line" +msgstr "" + +#. module: sale_order_line_delivery_state +#: model_terms:ir.ui.view,arch_db:sale_order_line_delivery_state.view_order_form +msgid "Unforce delivery done" +msgstr "" + +#. module: sale_order_line_delivery_state +#: model:ir.model.fields.selection,name:sale_order_line_delivery_state.selection__sale_order_line__delivery_state__unprocessed +msgid "Unprocessed" +msgstr "" From f9d8ac96e7465f8707b8cc9e7652958e5c7d3c5b Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Fri, 8 Oct 2021 10:31:48 +0000 Subject: [PATCH 03/16] [UPD] README.rst --- sale_order_line_delivery_state/README.rst | 8 +++--- .../static/description/index.html | 26 +++++++++---------- 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/sale_order_line_delivery_state/README.rst b/sale_order_line_delivery_state/README.rst index 8017a1ac8b8..e27d831ebd9 100644 --- a/sale_order_line_delivery_state/README.rst +++ b/sale_order_line_delivery_state/README.rst @@ -14,10 +14,10 @@ Sale Order Line Delivery State :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fsale--workflow-lightgray.png?logo=github - :target: https://github.com/OCA/sale-workflow/tree/13.0/sale_delivery_state + :target: https://github.com/OCA/sale-workflow/tree/13.0/sale_order_line_delivery_state :alt: OCA/sale-workflow .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/sale-workflow-13-0/sale-workflow-13-0-sale_delivery_state + :target: https://translation.odoo-community.org/projects/sale-workflow-13-0/sale-workflow-13-0-sale_order_line_delivery_state :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png :target: https://runbot.odoo-community.org/runbot/167/13.0 @@ -52,7 +52,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. @@ -82,6 +82,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/sale-workflow `_ project on GitHub. +This module is part of the `OCA/sale-workflow `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/sale_order_line_delivery_state/static/description/index.html b/sale_order_line_delivery_state/static/description/index.html index 1229246010d..0babfe0f12c 100644 --- a/sale_order_line_delivery_state/static/description/index.html +++ b/sale_order_line_delivery_state/static/description/index.html @@ -4,7 +4,7 @@ -Sale delivery State +Sale Order Line Delivery State -
-

Sale delivery State

+
+

Sale Order Line Delivery State

-

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

-

This odoo module add delivery state on the sale order.

-

Delivery state is computed based on qty_delivered field on sale order lines.

-

This is usefull for other modules to provide the state of delivery. -The state of the sale order can be forced to fully delivered in case +

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

+

This odoo module add delivery state on the sale order line. It is based on the +module sale_delivery_state, which adds the field at sale order level.

+

Delivery state is computed based on qty_delivered field on sale order line.

+

The state of the sale order line can be forced to fully delivered in case some quantities were cancelled by the customer and you consider you have nothing more to deliver.

Sale order lines can have products or services, as long as the field qty_delivered @@ -396,7 +396,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.

@@ -404,15 +404,13 @@

Credits

Authors

    -
  • Akretion
  • +
  • ForgeFlow
@@ -422,7 +420,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/sale-workflow project on GitHub.

+

This module is part of the OCA/sale-workflow project on GitHub.

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

From e5e0947ef8419d2b1d4553c95fd691689f3635f9 Mon Sep 17 00:00:00 2001 From: Dhaval Talpada Date: Tue, 30 Aug 2022 10:22:27 +0530 Subject: [PATCH 04/16] [MIG] sale_order_line_delivery_state: Migration to 15.0 --- sale_order_line_delivery_state/__manifest__.py | 2 +- sale_order_line_delivery_state/models/sale_order_line.py | 2 -- .../tests/test_sale_line_delivery_state.py | 6 +++--- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/sale_order_line_delivery_state/__manifest__.py b/sale_order_line_delivery_state/__manifest__.py index 7eef8f98013..fb5db1aaf8f 100644 --- a/sale_order_line_delivery_state/__manifest__.py +++ b/sale_order_line_delivery_state/__manifest__.py @@ -4,7 +4,7 @@ { "name": "Sale Order Line Delivery State", "summary": "Show the delivery state on the sale order line", - "version": "13.0.1.0.0", + "version": "15.0.1.0.0", "category": "Product", "website": "https://github.com/OCA/sale-workflow", "author": "ForgeFlow, Odoo Community Association (OCA)", diff --git a/sale_order_line_delivery_state/models/sale_order_line.py b/sale_order_line_delivery_state/models/sale_order_line.py index 1da092c41e2..19b33a51ace 100644 --- a/sale_order_line_delivery_state/models/sale_order_line.py +++ b/sale_order_line_delivery_state/models/sale_order_line.py @@ -15,7 +15,6 @@ class SaleOrderLine(models.Model): ("partially", "Partially processed"), ("done", "Done"), ], - string="Delivery state", # Compute method have a different name then the field because # the method _compute_delivery_state already exist to compute # the field delivery_set in odoo delivery module @@ -24,7 +23,6 @@ class SaleOrderLine(models.Model): ) force_delivery_state = fields.Boolean( - string="Force delivery state", help=( "Allow to enforce done state of delivery, for instance if some" " quantities were cancelled" diff --git a/sale_order_line_delivery_state/tests/test_sale_line_delivery_state.py b/sale_order_line_delivery_state/tests/test_sale_line_delivery_state.py index fe246689700..fd115d983e4 100644 --- a/sale_order_line_delivery_state/tests/test_sale_line_delivery_state.py +++ b/sale_order_line_delivery_state/tests/test_sale_line_delivery_state.py @@ -1,12 +1,12 @@ # Copyright 2021 ForgeFlow S.L. (https://www.forgeflow.com) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -import mock +from unittest import mock -from odoo.tests import SavepointCase +from odoo.tests import TransactionCase -class TestSaleLineDeliveryState(SavepointCase): +class TestSaleLineDeliveryState(TransactionCase): @classmethod def setUpClass(cls): super().setUpClass() From 21a4e596010f06a4b2c845af5364b4e8e81d48e3 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Thu, 29 Sep 2022 07:55:39 +0000 Subject: [PATCH 05/16] [UPD] Update sale_order_line_delivery_state.pot --- .../i18n/sale_order_line_delivery_state.pot | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/sale_order_line_delivery_state/i18n/sale_order_line_delivery_state.pot b/sale_order_line_delivery_state/i18n/sale_order_line_delivery_state.pot index f972ac86577..669816cc81b 100644 --- a/sale_order_line_delivery_state/i18n/sale_order_line_delivery_state.pot +++ b/sale_order_line_delivery_state/i18n/sale_order_line_delivery_state.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 13.0\n" +"Project-Id-Version: Odoo Server 15.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -21,28 +21,24 @@ msgid "" msgstr "" #. module: sale_order_line_delivery_state +#: model:ir.model.fields,field_description:sale_order_line_delivery_state.field_sale_order_line__delivery_state #: model_terms:ir.ui.view,arch_db:sale_order_line_delivery_state.view_order_form msgid "Delivery State" msgstr "" -#. module: sale_order_line_delivery_state -#: model:ir.model.fields,field_description:sale_order_line_delivery_state.field_sale_order_line__delivery_state -msgid "Delivery state" -msgstr "" - #. module: sale_order_line_delivery_state #: model:ir.model.fields.selection,name:sale_order_line_delivery_state.selection__sale_order_line__delivery_state__done msgid "Done" msgstr "" #. module: sale_order_line_delivery_state -#: model_terms:ir.ui.view,arch_db:sale_order_line_delivery_state.view_order_form -msgid "Force delivery done" +#: model:ir.model.fields,field_description:sale_order_line_delivery_state.field_sale_order_line__force_delivery_state +msgid "Force Delivery State" msgstr "" #. module: sale_order_line_delivery_state -#: model:ir.model.fields,field_description:sale_order_line_delivery_state.field_sale_order_line__force_delivery_state -msgid "Force delivery state" +#: model_terms:ir.ui.view,arch_db:sale_order_line_delivery_state.view_order_form +msgid "Force delivery done" msgstr "" #. module: sale_order_line_delivery_state From 4d40991f51fd04990bfa0084da8ca3419bfb6acf Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Thu, 29 Sep 2022 08:02:34 +0000 Subject: [PATCH 06/16] [UPD] README.rst --- sale_order_line_delivery_state/README.rst | 10 +++++----- .../static/description/index.html | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/sale_order_line_delivery_state/README.rst b/sale_order_line_delivery_state/README.rst index e27d831ebd9..a9df9bbe5ab 100644 --- a/sale_order_line_delivery_state/README.rst +++ b/sale_order_line_delivery_state/README.rst @@ -14,13 +14,13 @@ Sale Order Line Delivery State :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fsale--workflow-lightgray.png?logo=github - :target: https://github.com/OCA/sale-workflow/tree/13.0/sale_order_line_delivery_state + :target: https://github.com/OCA/sale-workflow/tree/15.0/sale_order_line_delivery_state :alt: OCA/sale-workflow .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/sale-workflow-13-0/sale-workflow-13-0-sale_order_line_delivery_state + :target: https://translation.odoo-community.org/projects/sale-workflow-15-0/sale-workflow-15-0-sale_order_line_delivery_state :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/167/13.0 + :target: https://runbot.odoo-community.org/runbot/167/15.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -52,7 +52,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. @@ -82,6 +82,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/sale-workflow `_ project on GitHub. +This module is part of the `OCA/sale-workflow `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/sale_order_line_delivery_state/static/description/index.html b/sale_order_line_delivery_state/static/description/index.html index 0babfe0f12c..0ed9d0d22a6 100644 --- a/sale_order_line_delivery_state/static/description/index.html +++ b/sale_order_line_delivery_state/static/description/index.html @@ -367,7 +367,7 @@

Sale Order Line Delivery State

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

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

+

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

This odoo module add delivery state on the sale order line. It is based on the module sale_delivery_state, which adds the field at sale order level.

Delivery state is computed based on qty_delivered field on sale order line.

@@ -396,7 +396,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.

@@ -420,7 +420,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/sale-workflow project on GitHub.

+

This module is part of the OCA/sale-workflow project on GitHub.

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

From 51ed43f22c1b5ca78e9d92351b22a1154a125884 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Thu, 29 Sep 2022 08:02:34 +0000 Subject: [PATCH 07/16] sale_order_line_delivery_state 15.0.1.0.1 --- sale_order_line_delivery_state/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sale_order_line_delivery_state/__manifest__.py b/sale_order_line_delivery_state/__manifest__.py index fb5db1aaf8f..8a8d71b3aaf 100644 --- a/sale_order_line_delivery_state/__manifest__.py +++ b/sale_order_line_delivery_state/__manifest__.py @@ -4,7 +4,7 @@ { "name": "Sale Order Line Delivery State", "summary": "Show the delivery state on the sale order line", - "version": "15.0.1.0.0", + "version": "15.0.1.0.1", "category": "Product", "website": "https://github.com/OCA/sale-workflow", "author": "ForgeFlow, Odoo Community Association (OCA)", From 5075816a49369d679940aadf53d5c826874e1a2e Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Sun, 3 Sep 2023 16:23:12 +0000 Subject: [PATCH 08/16] [UPD] README.rst --- sale_order_line_delivery_state/README.rst | 15 ++++---- .../static/description/index.html | 34 ++++++++++--------- 2 files changed, 27 insertions(+), 22 deletions(-) diff --git a/sale_order_line_delivery_state/README.rst b/sale_order_line_delivery_state/README.rst index a9df9bbe5ab..40115c0f061 100644 --- a/sale_order_line_delivery_state/README.rst +++ b/sale_order_line_delivery_state/README.rst @@ -2,10 +2,13 @@ Sale Order Line Delivery State ============================== -.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:4cd57b19fc995e36b4752f76c04dc48f1cf9cda99ab0fdf2a6123db3d50aaa8b + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status @@ -19,11 +22,11 @@ Sale Order Line Delivery State .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png :target: https://translation.odoo-community.org/projects/sale-workflow-15-0/sale-workflow-15-0-sale_order_line_delivery_state :alt: Translate me on Weblate -.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/167/15.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/sale-workflow&target_branch=15.0 + :alt: Try me on Runboat -|badge1| |badge2| |badge3| |badge4| |badge5| +|badge1| |badge2| |badge3| |badge4| |badge5| This odoo module add delivery state on the sale order line. It is based on the module sale_delivery_state, which adds the field at sale order level. @@ -51,7 +54,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 +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. diff --git a/sale_order_line_delivery_state/static/description/index.html b/sale_order_line_delivery_state/static/description/index.html index 0ed9d0d22a6..a1928be895d 100644 --- a/sale_order_line_delivery_state/static/description/index.html +++ b/sale_order_line_delivery_state/static/description/index.html @@ -1,20 +1,20 @@ - + - + Sale Order Line Delivery State