diff --git a/tryton/gui/window/view_form/model/field.py b/tryton/gui/window/view_form/model/field.py index 493a5bb607..8329cef85a 100644 --- a/tryton/gui/window/view_form/model/field.py +++ b/tryton/gui/window/view_form/model/field.py @@ -60,8 +60,11 @@ class Field(object): def validation_domains(self, record, pre_validate=None): return concat(*self.domains_get(record, pre_validate)) - def get_context(self, record): - context = record.get_context() + def get_context(self, record, record_context=None): + if record_context is not None: + context = record_context.copy() + else: + context = record.get_context() context.update(record.expr_eval(self.attrs.get('context', {}))) return context @@ -439,8 +442,8 @@ class M2OField(Field): record.value[self.name + '.rec_name'] = rec_name record.value[self.name] = value - def get_context(self, record): - context = super(M2OField, self).get_context(record) + def get_context(self, record, record_context=None): + context = super(M2OField, self).get_context(record, record_context) if self.attrs.get('datetime_field'): context['_datetime'] = record.get_eval( )[self.attrs.get('datetime_field')] @@ -858,8 +861,9 @@ class ReferenceField(Field): record.value[self.name] = ref_model, ref_id record.value[self.name + '.rec_name'] = rec_name - def get_context(self, record): - context = super(ReferenceField, self).get_context(record) + def get_context(self, record, record_context=None): + context = super(ReferenceField, self).get_context( + record, record_context) if self.attrs.get('datetime_field'): context['_datetime'] = record.get_eval( )[self.attrs.get('datetime_field')] diff --git a/tryton/gui/window/view_form/model/group.py b/tryton/gui/window/view_form/model/group.py index 67716758fb..2c38e8ae20 100644 --- a/tryton/gui/window/view_form/model/group.py +++ b/tryton/gui/window/view_form/model/group.py @@ -256,10 +256,11 @@ class Group(SignalEvent, list): def context(self): ctx = rpc.CONTEXT.copy() if self.parent: - ctx.update(self.parent.get_context()) + parent_context = self.parent.get_context() + ctx.update(parent_context) if self.child_name in self.parent.group.fields: field = self.parent.group.fields[self.child_name] - ctx.update(field.get_context(self.parent)) + ctx.update(field.get_context(self.parent, parent_context)) ctx.update(self._context) if self.parent_datetime_field: ctx['_datetime'] = self.parent.get_eval(