From 1a47ac3921f1a92b59277f45bde1347a1efde641 Mon Sep 17 00:00:00 2001 From: Raphael Collet Date: Fri, 11 Sep 2015 17:03:08 +0200 Subject: [PATCH] [FIX] models: fix write() on inherited field that is not a column of parent --- openerp/models.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/openerp/models.py b/openerp/models.py index 0071370164c..3d9b1850f9d 100644 --- a/openerp/models.py +++ b/openerp/models.py @@ -3924,8 +3924,8 @@ class BaseModel(object): # for recomputing new-style fields recs.modified(upd_todo) - unknown_fields = updend[:] - for table in self._inherits: + unknown_fields = set(updend) + for table, inherit_field in self._inherits.iteritems(): col = self._inherits[table] nids = [] for sub_ids in cr.split_for_in_conditions(ids): @@ -3934,10 +3934,11 @@ class BaseModel(object): nids.extend([x[0] for x in cr.fetchall()]) v = {} - for val in updend: - if self._inherit_fields[val][0] == table: - v[val] = vals[val] - unknown_fields.remove(val) + for fname in updend: + field = self._fields[fname] + if field.inherited and field.related[0] == inherit_field: + v[fname] = vals[fname] + unknown_fields.discard(fname) if v: self.pool[table].write(cr, user, nids, v, context)