From afb909aa41f716e72f5111ecdeab17cb5bd40ad3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Mon, 28 Oct 2024 21:23:57 +0100 Subject: [PATCH] Fix missing target field in operand of domain --- modules/production/production.py | 2 +- modules/purchase/product.py | 4 ++-- modules/purchase/purchase.py | 2 +- modules/sale/product.py | 2 +- modules/sale/sale.py | 2 +- modules/sale_payment/sale.py | 4 ++-- modules/stock/move.py | 2 +- modules/stock/shipment.py | 14 +++++++------- modules/stock_split/stock.py | 2 +- modules/stock_supply/tests/test_module.py | 9 +++++---- 10 files changed, 22 insertions(+), 21 deletions(-) diff --git a/modules/production/production.py b/modules/production/production.py index 3385c1493b..8f22360f0f 100644 --- a/modules/production/production.py +++ b/modules/production/production.py @@ -98,7 +98,7 @@ class Production(ShipmentAssignMixin, Workflow, ModelSQL, ModelView): unit = fields.Many2One( 'product.uom', "Unit", domain=[ - ('category', '=', Eval('uom_category')), + ('category', '=', Eval('uom_category', -1)), ], states={ 'readonly': ~Eval('state').in_(['request', 'draft']), diff --git a/modules/purchase/product.py b/modules/purchase/product.py index 7cd4f08ef9..8490b130d3 100644 --- a/modules/purchase/product.py +++ b/modules/purchase/product.py @@ -36,7 +36,7 @@ class Template(metaclass=PoolMeta): 'invisible': ~Eval('purchasable'), 'required': Eval('purchasable', False), }, - domain=[('category', '=', Eval('default_uom_category'))], + domain=[('category', '=', Eval('default_uom_category', -1))], help="The default Unit of Measure for purchases.") @fields.depends('default_uom', 'purchase_uom', 'purchasable') @@ -118,7 +118,7 @@ class Product(metaclass=PoolMeta): product_suppliers = fields.One2Many( 'purchase.product_supplier', 'product', "Suppliers", domain=[ - ('template', '=', Eval('template')), + ('template', '=', Eval('template', -1)), ], states={ 'invisible': (~Eval('purchasable', False) diff --git a/modules/purchase/purchase.py b/modules/purchase/purchase.py index a41ed18159..d386ad290f 100644 --- a/modules/purchase/purchase.py +++ b/modules/purchase/purchase.py @@ -138,7 +138,7 @@ class Purchase( invoice_address = fields.Many2One('party.address', 'Invoice Address', domain=[ ('party', '=', If(Bool(Eval('invoice_party')), - Eval('invoice_party'), Eval('party'))), + Eval('invoice_party', -1), Eval('party', -1))), ], states={ 'readonly': Eval('state') != 'draft', diff --git a/modules/sale/product.py b/modules/sale/product.py index 9554687956..eb82542b60 100644 --- a/modules/sale/product.py +++ b/modules/sale/product.py @@ -48,7 +48,7 @@ class Template(metaclass=PoolMeta): 'required': Eval('salable', False), }, domain=[ - ('category', '=', Eval('default_uom_category')), + ('category', '=', Eval('default_uom_category', -1)), ], help="The default Unit of Measure for sales.") lead_time = fields.MultiValue(fields.TimeDelta( diff --git a/modules/sale/sale.py b/modules/sale/sale.py index 3405555584..ba78933648 100644 --- a/modules/sale/sale.py +++ b/modules/sale/sale.py @@ -139,7 +139,7 @@ class Sale( invoice_address = fields.Many2One('party.address', 'Invoice Address', domain=[ ('party', '=', If(Bool(Eval('invoice_party')), - Eval('invoice_party'), Eval('party'))), + Eval('invoice_party', -1), Eval('party', -1))), ], states={ 'readonly': Eval('state') != 'draft', diff --git a/modules/sale_payment/sale.py b/modules/sale_payment/sale.py index b7c70c1946..edbe0e2923 100644 --- a/modules/sale_payment/sale.py +++ b/modules/sale_payment/sale.py @@ -32,8 +32,8 @@ class Sale(metaclass=PoolMeta): ('kind', '=', 'payable'), ), ('party', '=', If(Bool(Eval('invoice_party')), - Eval('invoice_party'), Eval('party'))), - ('currency', '=', Eval('currency')), + Eval('invoice_party', -1), Eval('party', -1))), + ('currency', '=', Eval('currency', -1)), ], states={ 'readonly': Eval('state') != 'quotation', diff --git a/modules/stock/move.py b/modules/stock/move.py index 563deae1c8..d3b66afefc 100644 --- a/modules/stock/move.py +++ b/modules/stock/move.py @@ -198,7 +198,7 @@ class Move(Workflow, ModelSQL, ModelView): }, domain=[ If(~Eval('state').in_(['done', 'cancelled']), - ('category', '=', Eval('product_uom_category')), + ('category', '=', Eval('product_uom_category', -1)), ()), ], help="The unit in which the quantity is specified.") diff --git a/modules/stock/shipment.py b/modules/stock/shipment.py index 677188b218..e5dab4ae59 100644 --- a/modules/stock/shipment.py +++ b/modules/stock/shipment.py @@ -409,13 +409,13 @@ class ShipmentIn( inventory_moves = fields.Function(fields.One2Many('stock.move', 'shipment', 'Inventory Moves', domain=[ - ('from_location', '=', Eval('warehouse_input')), + ('from_location', '=', Eval('warehouse_input', -1)), If(~Eval('state').in_(['done', 'cancelled']), ['OR', ('to_location', 'child_of', [Eval('warehouse_storage', -1)], 'parent'), ('to_location.waste_warehouses', '=', - Eval('warehouse')), + Eval('warehouse', -1)), ], [],), ('company', '=', Eval('company', -1)), @@ -1210,9 +1210,9 @@ class ShipmentOut( If(Eval('warehouse_output') == Eval('warehouse_storage'), ('from_location', 'child_of', [Eval('warehouse_output', -1)], 'parent'), - ('from_location', '=', Eval('warehouse_output'))), + ('from_location', '=', Eval('warehouse_output', -1))), If(~Eval('state').in_(['done', 'cancelled']), - ('to_location', '=', Eval('customer_location')), + ('to_location', '=', Eval('customer_location', -1)), ()), ('company', '=', Eval('company', -1)), ], @@ -1238,7 +1238,7 @@ class ShipmentOut( ('from_location', 'child_of', [Eval('warehouse_storage', -1)], 'parent'), ()), - ('to_location', '=', Eval('warehouse_output')), + ('to_location', '=', Eval('warehouse_output', -1)), ('company', '=', Eval('company', -1)), ], order=[ @@ -1947,13 +1947,13 @@ class ShipmentOutReturn( inventory_moves = fields.Function(fields.One2Many('stock.move', 'shipment', 'Inventory Moves', domain=[ - ('from_location', '=', Eval('warehouse_input')), + ('from_location', '=', Eval('warehouse_input', -1)), If(Eval('state').in_(['received']), ['OR', ('to_location', 'child_of', [Eval('warehouse_storage', -1)], 'parent'), ('to_location.waste_warehouses', '=', - Eval('warehouse')), + Eval('warehouse', -1)), ], []), ('company', '=', Eval('company', -1)), diff --git a/modules/stock_split/stock.py b/modules/stock_split/stock.py index f28c01f342..04b64be38a 100644 --- a/modules/stock_split/stock.py +++ b/modules/stock_split/stock.py @@ -82,7 +82,7 @@ class SplitMoveStart(ModelView): unit = fields.Many2One( 'product.uom', "Unit", required=True, domain=[ - ('category', '=', Eval('uom_category')), + ('category', '=', Eval('uom_category', -1)), ]) uom_category = fields.Many2One( 'product.uom.category', "UoM Category", readonly=True, diff --git a/modules/stock_supply/tests/test_module.py b/modules/stock_supply/tests/test_module.py index 7c7d6955b3..808126a69d 100644 --- a/modules/stock_supply/tests/test_module.py +++ b/modules/stock_supply/tests/test_module.py @@ -151,10 +151,11 @@ class StockSupplyTestCase(CompanyTestMixin, ModuleTestCase): }]) for clause, result in [ - (('location', '=', warehouse.name), [order_point]), - (('location', '=', 'storage'), []), - (('location', '!=', warehouse.name), []), - (('location', '!=', 'storage'), [order_point]), + (('location.rec_name', '=', warehouse.name), + [order_point]), + (('location.type', '=', 'storage'), []), + (('location.rec_name', '!=', warehouse.name), []), + (('location.type', '!=', 'storage'), [order_point]), ]: self.assertListEqual( OrderPoint.search(clause), result, msg=clause)