From 83eefd5837b4ae1d82e6437ca7b4130a348e797c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Thu, 3 Jun 2010 19:50:50 +0200 Subject: [PATCH] get_eval must return a list of id for O2M for issue1572 --- tryton/gui/window/view_form/model/field.py | 6 ++++++ tryton/gui/window/view_form/model/record.py | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/tryton/gui/window/view_form/model/field.py b/tryton/gui/window/view_form/model/field.py index 66363dc9d7..2840470e9b 100644 --- a/tryton/gui/window/view_form/model/field.py +++ b/tryton/gui/window/view_form/model/field.py @@ -76,6 +76,9 @@ class CharField(object): return self.get(record, check_load=check_load, readonly=True, modified=False) + def get_on_change_value(self, record, check_load=True): + return self.get_eval(record, check_load=check_load) + def set_client(self, record, value, force_change=False): internal = record.value.get(self.name, False) prev_modified = record.modified @@ -393,6 +396,9 @@ class O2MField(CharField): return result def get_eval(self, record, check_load=True): + return [x.id for x in record.value.get(self.name) or []] + + def get_on_change_value(self, record, check_load=True): result = [] if record.value.get(self.name) is None: return [] diff --git a/tryton/gui/window/view_form/model/record.py b/tryton/gui/window/view_form/model/record.py index 1c22746883..436e928ec4 100644 --- a/tryton/gui/window/view_form/model/record.py +++ b/tryton/gui/window/view_form/model/record.py @@ -366,7 +366,7 @@ class Record(SignalEvent): res = {} values = {} for name, field in self.group.fields.iteritems(): - values[name] = field.get_eval(self, check_load=False) + values[name] = field.get_on_change_value(self, check_load=False) if self.parent and self.parent_name: values['_parent_' + self.parent_name] = EvalEnvironment(self.parent, False)