From 1257df9879afd3cd163a40132d7a8e962d1f4150 Mon Sep 17 00:00:00 2001 From: Raimon Esteve Date: Fri, 10 Nov 2023 07:13:48 +0100 Subject: [PATCH] Replace uom domain by parent to product uom category (#5) #163292 --- locale/ca.po | 6 +++--- locale/es.po | 6 +++--- plan.py | 36 ++++++++++++++---------------------- 3 files changed, 20 insertions(+), 28 deletions(-) diff --git a/locale/ca.po b/locale/ca.po index 1ee1753..b8933bc 100644 --- a/locale/ca.po +++ b/locale/ca.po @@ -170,9 +170,9 @@ msgctxt "field:product.cost.plan.product_line,uom:" msgid "UoM" msgstr "UdM" -msgctxt "field:product.cost.plan.product_line,uom_category:" -msgid "UoM Category" -msgstr "Categoria d'UdM" +msgctxt "field:product.cost.plan.product_line,product_uom_category:" +msgid "Product UoM Category" +msgstr "Categoria UdM del producte" msgctxt "field:product.cost.plan.product_line,uom_digits:" msgid "UoM Digits" diff --git a/locale/es.po b/locale/es.po index fd20d06..564bef6 100644 --- a/locale/es.po +++ b/locale/es.po @@ -170,9 +170,9 @@ msgctxt "field:product.cost.plan.product_line,uom:" msgid "UoM" msgstr "UdM" -msgctxt "field:product.cost.plan.product_line,uom_category:" -msgid "UoM Category" -msgstr "Categoría de UdM" +msgctxt "field:product.cost.plan.product_line,product_uom_category:" +msgid "Product UoM Category" +msgstr "Categoría UdM del producto" msgctxt "field:product.cost.plan.product_line,uom_digits:" msgid "UoM Digits" diff --git a/plan.py b/plan.py index c0c0d52..c2a2fc4 100644 --- a/plan.py +++ b/plan.py @@ -490,19 +490,18 @@ class PlanProductLine(ModelSQL, ModelView, tree(separator='/')): plan = fields.Many2One('product.cost.plan', 'Plan', ondelete='CASCADE') product = fields.Many2One('product.product', 'Product', domain=[ ('type', '!=', 'service'), - If(Bool(Eval('children')), - ('default_uom.category', '=', Eval('uom_category')), - ()), - ], depends=['children', 'uom_category']) + ]) quantity = fields.Float('Quantity', required=True, digits=(16, Eval('uom_digits', 2)), depends=['uom_digits']) - uom_category = fields.Function(fields.Many2One('product.uom.category', - 'UoM Category'), 'on_change_with_uom_category') - uom = fields.Many2One('product.uom', 'UoM', required=True, domain=[ - If(Bool(Eval('children')) | Bool(Eval('product')), - ('category', '=', Eval('uom_category')), - ()), - ], depends=['children', 'product', 'uom_category']) + product_uom_category = fields.Function( + fields.Many2One('product.uom.category', 'Product Uom Category'), + 'on_change_with_product_uom_category') + uom = fields.Many2One('product.uom', 'UoM', required=True, + domain=[ + If(Bool(Eval('product_uom_category')), + ('category', '=', Eval('product_uom_category')), + ('category', '!=', -1)), + ], depends=['product_uom_category']) uom_digits = fields.Function(fields.Integer('UoM Digits'), 'on_change_with_uom_digits') party_stock = fields.Boolean('Party Stock', @@ -553,17 +552,10 @@ class PlanProductLine(ModelSQL, ModelView, tree(separator='/')): self.uom = None self.product_cost_price = None - @fields.depends('children', 'product', 'plan', '_parent_plan.uom') - def on_change_with_uom_category(self, name=None): - if self.children: - uoms = set([child.uom.category for child in self.children - if child.uom]) - if len(uoms) == 1: - return list(uoms)[0].id - elif self.product: - return self.product.default_uom.category.id - elif self.plan and self.plan.uom: - return self.plan.uom.category.id + @fields.depends('product') + def on_change_with_product_uom_category(self, name=None): + if self.product: + return self.product.default_uom_category.id @fields.depends('uom') def on_change_with_uom_digits(self, name=None):