From 27ec7bf1eaad1a28987d390621e754eccecb6409 Mon Sep 17 00:00:00 2001 From: "Valeriya(vchu)" Date: Tue, 2 May 2023 07:51:21 +0000 Subject: [PATCH] [IMP] sale_management: allow edit optional products in portal Before, if the product was both in the order and in optional products, the user could not edit the quantity. Now, the user can edit the quantity for all optional products. task-3290530 Part-of: odoo/odoo#120229 --- addons/sale_management/controllers/portal.py | 4 ++-- addons/sale_management/models/sale_order_line.py | 8 ++++++++ .../sale_management/views/sale_portal_templates.xml | 12 +++++++++--- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/addons/sale_management/controllers/portal.py b/addons/sale_management/controllers/portal.py index 187c203e916..11a8d7c4e35 100644 --- a/addons/sale_management/controllers/portal.py +++ b/addons/sale_management/controllers/portal.py @@ -43,8 +43,8 @@ class CustomerPortal(portal.CustomerPortal): if not order_line or order_line.order_id != order_sudo: return False - if not order_line.sale_order_option_ids: - # Do not allow updating non optional lines from a quotation + if not order_line._can_be_edited_on_portal(): + # Do not allow updating non-optional products from a quotation return False if input_quantity is not False: diff --git a/addons/sale_management/models/sale_order_line.py b/addons/sale_management/models/sale_order_line.py index dd43b04c791..f7b29ba4f6a 100644 --- a/addons/sale_management/models/sale_order_line.py +++ b/addons/sale_management/models/sale_order_line.py @@ -35,3 +35,11 @@ class SaleOrderLine(models.Model): # used in the optional product line. optional_product_lines = self.filtered('sale_order_option_ids') super(SaleOrderLine, self - optional_product_lines)._compute_price_unit() + + #=== TOOLING ===# + + def _can_be_edited_on_portal(self): + return self.state in ('draft', 'sent') and ( + self.sale_order_option_ids + or self.product_id in self.order_id.sale_order_option_ids.product_id + ) diff --git a/addons/sale_management/views/sale_portal_templates.xml b/addons/sale_management/views/sale_portal_templates.xml index 10ecf5f72f6..6ed939e3361 100644 --- a/addons/sale_management/views/sale_portal_templates.xml +++ b/addons/sale_management/views/sale_portal_templates.xml @@ -4,7 +4,7 @@