From 1b50ab962490e4851dfe4a22aacbdbb6e3ce3660 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Thu, 27 Mar 2025 23:07:41 +0100 Subject: [PATCH] Make lines of sales, subscriptions and purchases read only without a company and currency Closes #13948 --- modules/purchase/purchase.py | 10 ++++++++-- modules/sale/sale.py | 12 ++++++++---- modules/sale_subscription/subscription.py | 7 +++++-- 3 files changed, 21 insertions(+), 8 deletions(-) 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(