Allow to pass parent_context when calling get_context

issue7697
review56381002
This commit is contained in:
Cédric Krier committed 2018-09-21 11:02:08 +02:00
1 parent 2775d1639b
commit e91cbf7832
2 files changed
+13 -8

No files matched your search

+10 -6
View File
@@ -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')]
+3 -2
View File
@@ -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(