[IMP] signaling: call also digits_change() when caches are cleared.
authorVo Minh Thu <vmt@openerp.com>
Fri, 23 Mar 2012 11:24:45 +0000 (12:24 +0100)
committerVo Minh Thu <vmt@openerp.com>
Fri, 23 Mar 2012 11:24:45 +0000 (12:24 +0100)
bzr revid: vmt@openerp.com-20120323112445-5jskbvjlh0x2muf8

openerp/modules/registry.py

index de34aef..9ec3e6f 100644 (file)
@@ -284,6 +284,13 @@ class RegistryManager(object):
                     registry.base_cache_signaling_sequence = c
                     registry.clear_caches()
                     registry.reset_any_cache_cleared()
+                    # One possible reason caches have been invalidated is the
+                    # use of decimal_precision.write(), in which case we need
+                    # to refresh fields.float columns.
+                    for model in registry.models.values():
+                        for column in model._columns.values():
+                            if hasattr(column, 'digits_change'):
+                                column.digits_change(cr)
             finally:
                 cr.close()