From d681c1a788d886a0da5e37c8a73cea2cf05c6b98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20BEAU?= Date: Thu, 1 Aug 2024 07:55:00 +0200 Subject: [PATCH] shopinvader_api_delivery_carrier: hide delivery line in cart --- shopinvader_api_delivery_carrier/__init__.py | 1 + .../models/__init__.py | 1 + .../models/sale_order_line.py | 16 ++++++++++++++++ .../tests/test_set_carrier.py | 6 ++++++ 4 files changed, 24 insertions(+) create mode 100644 shopinvader_api_delivery_carrier/models/__init__.py create mode 100644 shopinvader_api_delivery_carrier/models/sale_order_line.py diff --git a/shopinvader_api_delivery_carrier/__init__.py b/shopinvader_api_delivery_carrier/__init__.py index 62a5d54..f405eb3 100644 --- a/shopinvader_api_delivery_carrier/__init__.py +++ b/shopinvader_api_delivery_carrier/__init__.py @@ -1 +1,2 @@ from . import routers +from . import models diff --git a/shopinvader_api_delivery_carrier/models/__init__.py b/shopinvader_api_delivery_carrier/models/__init__.py new file mode 100644 index 0000000..8eb9d1d --- /dev/null +++ b/shopinvader_api_delivery_carrier/models/__init__.py @@ -0,0 +1 @@ +from . import sale_order_line diff --git a/shopinvader_api_delivery_carrier/models/sale_order_line.py b/shopinvader_api_delivery_carrier/models/sale_order_line.py new file mode 100644 index 0000000..47c94cd --- /dev/null +++ b/shopinvader_api_delivery_carrier/models/sale_order_line.py @@ -0,0 +1,16 @@ +# Copyright 2024 Akretion (https://www.akretion.com). +# @author Sébastien BEAU +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import api, models + + +class SaleOrderLine(models.Model): + _inherit = "sale.order.line" + + def _is_visible_in_shopinvader_api(self): + return super()._is_visible_in_shopinvader_api() and not self.is_delivery + + @api.depends("is_delivery") + def _compute_visible_in_shopinvader_api(self): + return super()._compute_visible_in_shopinvader_api() diff --git a/shopinvader_api_delivery_carrier/tests/test_set_carrier.py b/shopinvader_api_delivery_carrier/tests/test_set_carrier.py index eaa5395..54aa5a3 100644 --- a/shopinvader_api_delivery_carrier/tests/test_set_carrier.py +++ b/shopinvader_api_delivery_carrier/tests/test_set_carrier.py @@ -41,6 +41,12 @@ def test_setting_free_carrier(self): ) self.assertEqual(response.status_code, 200) info = response.json() + + # Ensure that delivery line is not visible in the cart + delivery_line = self.cart.order_line.filtered("is_delivery") + for line in info["lines"]: + self.assertNotEqual(line["id"], delivery_line.id) + self.assertEqual(info["delivery"]["amount"]["total"], 0) self.assertEqual( info["delivery"]["selected_carrier"]["description"],