diff --git a/sale_order_line_delivery_state/__manifest__.py b/sale_order_line_delivery_state/__manifest__.py index 70cd5f9659a..5d8a33882c7 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": "16.0.1.0.0", + "version": "17.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 19b33a51ace..bc8282e9a81 100644 --- a/sale_order_line_delivery_state/models/sale_order_line.py +++ b/sale_order_line_delivery_state/models/sale_order_line.py @@ -15,10 +15,7 @@ class SaleOrderLine(models.Model): ("partially", "Partially processed"), ("done", "Done"), ], - # 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", + compute="_compute_delivery_state", store=True, ) @@ -60,7 +57,7 @@ def _partially_delivered(self): 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): + def _compute_delivery_state(self): """ If `delivery` module is installed, lines with delivery costs are marked as 'No delivery'. 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 fd115d983e4..3a12353f428 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 @@ -14,7 +14,7 @@ def setUpClass(cls): # Base data partner = cls.env.ref("base.res_partner_2") product = cls.env.ref("product.product_product_25") - pricelist = cls.env.ref("product.list0") + pricelist = cls.env["product.pricelist"].create({"name": "Test Pricelist"}) cls.uom = cls.env.ref("uom.product_uom_unit") # Create delivery product cls.delivery_cost = cls.env["product.product"].create( @@ -106,6 +106,12 @@ def test_forced_delivery_cost(self): 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") + self.order.order_line[0].action_force_delivery_state() + # Assert the delivery state is set to done + self.assertEqual(self.order.order_line[0].delivery_state, "done") + self.order.order_line[0].action_unforce_delivery_state() + # Assert the delivery state is back to partially + self.assertEqual(self.order.order_line[0].delivery_state, "partially") def test_delivery_done_delivery_cost(self): self._add_delivery_cost_line() diff --git a/sale_order_line_delivery_state/views/sale_order_views.xml b/sale_order_line_delivery_state/views/sale_order_views.xml index cb94bddfcb3..a742028042c 100644 --- a/sale_order_line_delivery_state/views/sale_order_views.xml +++ b/sale_order_line_delivery_state/views/sale_order_views.xml @@ -18,14 +18,14 @@ type="object" string="Force delivery done" states="done" - attrs="{'invisible': ['|', ('force_delivery_state', '=', True), ('delivery_state', '=', 'done')]}" + invisible="force_delivery_state or state == 'done'" />