[FIX] fields: skip missing triggers for computed custom fields
This improves ddafbab3e4 by still loading the
field, but be tolerant if setting its triggers fails.
This commit is contained in:
+4
-3
@@ -728,8 +728,6 @@ class BaseModel(object):
|
|||||||
attrs['domain'] = eval(field['domain']) if field['domain'] else None
|
attrs['domain'] = eval(field['domain']) if field['domain'] else None
|
||||||
# add compute function if given
|
# add compute function if given
|
||||||
if field['compute']:
|
if field['compute']:
|
||||||
if partial and field['depends']:
|
|
||||||
continue
|
|
||||||
attrs['compute'] = make_compute(field['compute'], field['depends'])
|
attrs['compute'] = make_compute(field['compute'], field['depends'])
|
||||||
self._add_field(name, Field.by_type[field['ttype']](**attrs))
|
self._add_field(name, Field.by_type[field['ttype']](**attrs))
|
||||||
|
|
||||||
@@ -3061,7 +3059,10 @@ class BaseModel(object):
|
|||||||
|
|
||||||
# set up field triggers
|
# set up field triggers
|
||||||
for field in cls._fields.itervalues():
|
for field in cls._fields.itervalues():
|
||||||
field.setup_triggers(self.env)
|
# dependencies of custom fields may not exist; ignore that case
|
||||||
|
exceptions = (Exception,) if field.manual else ()
|
||||||
|
with tools.ignore(*exceptions):
|
||||||
|
field.setup_triggers(self.env)
|
||||||
|
|
||||||
# add invalidation triggers on model dependencies
|
# add invalidation triggers on model dependencies
|
||||||
if cls._depends:
|
if cls._depends:
|
||||||
|
|||||||
Reference in New Issue
Block a user