[IMP] fields: initialized computed fields to a null value instead of a failed one
This should ease compute methods that assign a list to "update" a one2many/many2many field. With a failed value, the update crashes.
This commit is contained in:
parent
0bbb449d27
commit
0873613767
|
@ -792,11 +792,9 @@ class Field(object):
|
||||||
|
|
||||||
def _compute_value(self, records):
|
def _compute_value(self, records):
|
||||||
""" Invoke the compute method on `records`. """
|
""" Invoke the compute method on `records`. """
|
||||||
# mark the computed fields failed in cache, so that access before
|
# initialize the fields to their corresponding null value in cache
|
||||||
# computation raises an exception
|
|
||||||
exc = Warning("Field %s is accessed before being computed." % self)
|
|
||||||
for field in self.computed_fields:
|
for field in self.computed_fields:
|
||||||
records._cache[field] = FailedValue(exc)
|
records._cache[field] = field.null(records.env)
|
||||||
records.env.computed[field].update(records._ids)
|
records.env.computed[field].update(records._ids)
|
||||||
self.compute(records)
|
self.compute(records)
|
||||||
for field in self.computed_fields:
|
for field in self.computed_fields:
|
||||||
|
|
Loading…
Reference in New Issue