diff --git a/modules/purchase/purchase.py b/modules/purchase/purchase.py index 6815d0a598..2677916bc9 100644 --- a/modules/purchase/purchase.py +++ b/modules/purchase/purchase.py @@ -155,8 +155,14 @@ class Purchase( 'readonly': ((Eval('state') != 'draft') | (Eval('lines', [0]) & Eval('currency'))), }) - lines = fields.One2Many('purchase.line', 'purchase', 'Lines', - states=_states) + lines = fields.One2Many( + 'purchase.line', 'purchase', "Lines", + states={ + 'readonly': ( + (Eval('state') != 'draft') + | ~Eval('company') + | ~Eval('currency')), + }) line_lines = fields.One2Many( 'purchase.line', 'purchase', "Line - Lines", readonly=True, filter=[ diff --git a/modules/sale/sale.py b/modules/sale/sale.py index 8c47bc0b48..abeeebaa31 100644 --- a/modules/sale/sale.py +++ b/modules/sale/sale.py @@ -212,10 +212,14 @@ class Sale( 'readonly': ((Eval('state') != 'draft') | (Eval('lines', [0]) & Eval('currency', 0))), }) - lines = fields.One2Many('sale.line', 'sale', 'Lines', states={ - 'readonly': Eval('state') != 'draft', - }, - depends={'party'}) + lines = fields.One2Many( + 'sale.line', 'sale', "Lines", + states={ + 'readonly': ( + (Eval('state') != 'draft') + | ~Eval('company') + | ~Eval('currency')), + }) line_lines = fields.One2Many( 'sale.line', 'sale', "Line - Lines", readonly=True, filter=[ diff --git a/modules/sale_subscription/subscription.py b/modules/sale_subscription/subscription.py index 03bf77fcd0..103cb6e30e 100644 --- a/modules/sale_subscription/subscription.py +++ b/modules/sale_subscription/subscription.py @@ -145,8 +145,11 @@ class Subscription(Workflow, ModelSQL, ModelView): lines = fields.One2Many( 'sale.subscription.line', 'subscription', "Lines", states={ - 'readonly': ((Eval('state') != 'draft') - | ~Eval('start_date')), + 'readonly': ( + (Eval('state') != 'draft') + | ~Eval('start_date') + | ~Eval('company') + | ~Eval('currency')), }) quoted_by = employee_field(