[FIX] fields: duplicate float fields per registry (because they are stateful).
authorVo Minh Thu <vmt@openerp.com>
Wed, 15 Feb 2012 10:17:14 +0000 (11:17 +0100)
committerVo Minh Thu <vmt@openerp.com>
Wed, 15 Feb 2012 10:17:14 +0000 (11:17 +0100)
lp bug: https://launchpad.net/bugs/929483 fixed

bzr revid: vmt@openerp.com-20120215101714-zjsdcizzb1m2x6k5

openerp/osv/orm.py

index 3e19093..8901cf5 100644 (file)
@@ -886,6 +886,11 @@ class BaseModel(object):
                         for c in new.keys():
                             if new[c].manual:
                                 del new[c]
+                        # Duplicate float fields because they have a .digits
+                        # cache (which must be per-registry, not server-wide).
+                        for c in new.keys():
+                            if new[c]._type == 'float':
+                                new[c] = copy.copy(new[c])
                     if hasattr(new, 'update'):
                         new.update(cls.__dict__.get(s, {}))
                     elif s=='_constraints':