Allow to pass parent_context when calling get_context
issue7697 review56381002
This commit is contained in:
1 parent
2775d1639b
commit
e91cbf7832
2 files changed
+13
-8
No files matched your search
@@ -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')]
|
||||
|
||||
@@ -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(
|
||||
|
||||
Reference in new issue
Block a user