From c82681f1ab0e0a459ca8df6b48efb0b46edec439 Mon Sep 17 00:00:00 2001 From: Victor Feyens Date: Mon, 21 Feb 2022 11:18:32 +0000 Subject: [PATCH] [IMP] sale_product_configurator: module cleanup * correct python file name * alphabetical ordering of imports * demo data indentation Part-of: odoo/odoo#85001 --- addons/sale_product_configurator/__init__.py | 2 +- .../data/sale_demo.xml | 44 +++++++++---------- .../models/__init__.py | 2 +- .../{product.py => product_template.py} | 17 ++++--- 4 files changed, 34 insertions(+), 31 deletions(-) rename addons/sale_product_configurator/models/{product.py => product_template.py} (77%) diff --git a/addons/sale_product_configurator/__init__.py b/addons/sale_product_configurator/__init__.py index 1f4530082b3..bbc55806ace 100644 --- a/addons/sale_product_configurator/__init__.py +++ b/addons/sale_product_configurator/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -from . import models from . import controllers +from . import models from . import wizard diff --git a/addons/sale_product_configurator/data/sale_demo.xml b/addons/sale_product_configurator/data/sale_demo.xml index 589f8ef8497..41247ef7294 100644 --- a/addons/sale_product_configurator/data/sale_demo.xml +++ b/addons/sale_product_configurator/data/sale_demo.xml @@ -1,25 +1,25 @@ - - - - Chair floor protection - - 12.0 - 0.01 - - - Office chairs can harm your floor: protect it. - - + + + + Chair floor protection + + 12.0 + 0.01 + + + Office chairs can harm your floor: protect it. + + + + + + + + + + + + - - - - - - - - - - diff --git a/addons/sale_product_configurator/models/__init__.py b/addons/sale_product_configurator/models/__init__.py index 3873985e687..519b41d0ea2 100644 --- a/addons/sale_product_configurator/models/__init__.py +++ b/addons/sale_product_configurator/models/__init__.py @@ -1,4 +1,4 @@ # -*- coding: utf-8 -*- +from . import product_template from . import sale_order_line -from . import product diff --git a/addons/sale_product_configurator/models/product.py b/addons/sale_product_configurator/models/product_template.py similarity index 77% rename from addons/sale_product_configurator/models/product.py rename to addons/sale_product_configurator/models/product_template.py index 9fea6201d68..51b52c6bc0c 100644 --- a/addons/sale_product_configurator/models/product.py +++ b/addons/sale_product_configurator/models/product_template.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. -from odoo import fields, models, api +from odoo import api, fields, models class ProductTemplate(models.Model): @@ -21,9 +21,11 @@ class ProductTemplate(models.Model): - It has any attribute line with at least 2 attribute values configured - It has at least one custom attribute value """ for product in self: - product.has_configurable_attributes = any(attribute.create_variant == 'dynamic' for attribute in product.mapped('attribute_line_ids.attribute_id')) \ - or any(len(attribute_line_id.value_ids) >= 2 for attribute_line_id in product.attribute_line_ids) \ - or any(attribute_value.is_custom for attribute_value in product.mapped('attribute_line_ids.value_ids')) + product.has_configurable_attributes = ( + any(attribute.create_variant == 'dynamic' for attribute in product.attribute_line_ids.attribute_id) + or any(len(attribute_line_id.value_ids) >= 2 for attribute_line_id in product.attribute_line_ids) + or any(attribute_value.is_custom for attribute_value in product.attribute_line_ids.value_ids) + ) def get_single_product_variant(self): """ Method used by the product configurator to check if the product is configurable or not. @@ -31,12 +33,13 @@ class ProductTemplate(models.Model): We need to open the product configurator if the product: - is configurable (see has_configurable_attributes) - has optional products """ - self.ensure_one() - res = super(ProductTemplate, self).get_single_product_variant() + res = super().get_single_product_variant() if res.get('product_id', False): has_optional_products = False for optional_product in self.product_variant_id.optional_product_ids: - if optional_product.has_dynamic_attributes() or optional_product._get_possible_variants(self.product_variant_id.product_template_attribute_value_ids): + if optional_product.has_dynamic_attributes() or optional_product._get_possible_variants( + self.product_variant_id.product_template_attribute_value_ids + ): has_optional_products = True break res.update({'has_optional_products': has_optional_products})