[FIX] OPW 575395: orm: backport of 6.1 fix - no defer for func fields during parent...
authorOlivier Dony <odo@openerp.com>
Mon, 4 Jun 2012 15:31:19 +0000 (17:31 +0200)
committerOlivier Dony <odo@openerp.com>
Mon, 4 Jun 2012 15:31:19 +0000 (17:31 +0200)
lp bug: https://launchpad.net/bugs/704922 fixed

bzr revid: odo@openerp.com-20120604153119-sn0ibyir43v6v0hh

bin/osv/orm.py

index fa23e09..3f27759 100644 (file)
@@ -3623,11 +3623,16 @@ class orm(orm_template):
                 del vals[self._inherits[table]]
 
             record_id = tocreate[table].pop('id', None)
-
+            
+            # When linking/creating parent records, force context without 'no_store_function' key that
+            # defers stored functions computing, as these won't be computed in batch at the end of create(). 
+            parent_context = dict(context)
+            parent_context.pop('no_store_function', None)
+            
             if record_id is None or not record_id:
-                record_id = self.pool.get(table).create(cr, user, tocreate[table], context=context)
+                record_id = self.pool.get(table).create(cr, user, tocreate[table], context=parent_context)
             else:
-                self.pool.get(table).write(cr, user, [record_id], tocreate[table], context=context)
+                self.pool.get(table).write(cr, user, [record_id], tocreate[table], context=parent_context)
 
             upd0 += ',' + self._inherits[table]
             upd1 += ',%s'