From d1c0ecbbfda5abb2ebe233736f3e2f5da50e6ff8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20=C3=89vrard?= Date: Fri, 18 Oct 2013 15:57:52 +0200 Subject: [PATCH] Make field readonly when it is an AND-domain review1135003 --- tryton/gui/window/view_form/model/field.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tryton/gui/window/view_form/model/field.py b/tryton/gui/window/view_form/model/field.py index b8215f76cd..12966cafa2 100644 --- a/tryton/gui/window/view_form/model/field.py +++ b/tryton/gui/window/view_form/model/field.py @@ -107,18 +107,20 @@ class CharField(object): # XXX to remove once server domains are fixed value = None setdefault = True + original_domain = merge(record.group.domain) + domain_readonly = original_domain[0] == 'AND' if '.' in leftpart: recordpart, localpart = leftpart.split('.', 1) - original_domain = merge(record.group.domain) constraintfields = set() - if original_domain[0] == 'AND': + if domain_readonly: for leaf in localize_domain(original_domain[1:]): constraintfields.add(leaf[0]) if localpart != 'id' or recordpart not in constraintfields: setdefault = False if setdefault: self.set_client(record, value) - self.get_state_attrs(record)['domain_readonly'] = True + self.get_state_attrs(record)['domain_readonly'] = ( + domain_readonly) res = res and eval_domain(domain, EvalEnvironment(record)) self.get_state_attrs(record)['valid'] = res return res