diff --git a/modules/production_routing/production.py b/modules/production_routing/production.py index c0ebe8ebec..10524e8592 100644 --- a/modules/production_routing/production.py +++ b/modules/production_routing/production.py @@ -2,14 +2,16 @@ # this repository contains the full copyright notices and license terms. from trytond.model import fields from trytond.pool import PoolMeta -from trytond.pyson import Eval +from trytond.pyson import Eval, If class Production(metaclass=PoolMeta): __name__ = 'production' routing = fields.Many2One('production.routing', 'Routing', domain=[ - ('boms', '=', Eval('bom', 0)), + If(Eval('state').in_(['request', 'draft']), + ('boms', '=', Eval('bom', 0)), + ()), ], states={ 'readonly': ~Eval('state').in_(['request', 'draft']), diff --git a/modules/production_routing/routing.py b/modules/production_routing/routing.py index a79509c801..75bad8d878 100644 --- a/modules/production_routing/routing.py +++ b/modules/production_routing/routing.py @@ -39,5 +39,7 @@ class RoutingStep(sequence_ordered(), ModelSQL, ModelView): class Routing_BOM(ModelSQL): __name__ = 'production.routing-production.bom' - routing = fields.Many2One('production.routing', 'Routing', required=True) - bom = fields.Many2One('production.bom', 'BOM', required=True) + routing = fields.Many2One( + 'production.routing', "Routing", required=True, ondelete='CASCADE') + bom = fields.Many2One( + 'production.bom', "BOM", required=True, ondelete='CASCADE')