From 6c306856fb785b8ecf117394eabd87dd95be602c Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Fri, 23 Mar 2012 12:24:45 +0100 Subject: [PATCH] [IMP] signaling: call also digits_change() when caches are cleared. bzr revid: vmt@openerp.com-20120323112445-5jskbvjlh0x2muf8 --- openerp/modules/registry.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/openerp/modules/registry.py b/openerp/modules/registry.py index de34aefe149..9ec3e6f456a 100644 --- a/openerp/modules/registry.py +++ b/openerp/modules/registry.py @@ -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()