diff --git a/openerp/models.py b/openerp/models.py index d779f487309..fa85b047c40 100644 --- a/openerp/models.py +++ b/openerp/models.py @@ -728,8 +728,6 @@ class BaseModel(object): attrs['domain'] = eval(field['domain']) if field['domain'] else None # add compute function if given if field['compute']: - if partial and field['depends']: - continue attrs['compute'] = make_compute(field['compute'], field['depends']) self._add_field(name, Field.by_type[field['ttype']](**attrs)) @@ -3061,7 +3059,10 @@ class BaseModel(object): # set up field triggers 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 if cls._depends: