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()