From bad0bc85119b52967f032791cedbf86f370a49fa Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Thu, 9 Feb 2012 12:07:03 +0100 Subject: [PATCH] [IMP] gunicorn: connect ir_ui_cache with the signaling code. bzr revid: vmt@openerp.com-20120209110703-swsi7gckc46zqx40 --- openerp/addons/base/ir/ir_ui_menu.py | 4 ++++ openerp/modules/registry.py | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/openerp/addons/base/ir/ir_ui_menu.py b/openerp/addons/base/ir/ir_ui_menu.py index db5afcb7585..843c8dd64b0 100644 --- a/openerp/addons/base/ir/ir_ui_menu.py +++ b/openerp/addons/base/ir/ir_ui_menu.py @@ -50,6 +50,10 @@ class ir_ui_menu(osv.osv): def clear_cache(self): with self.cache_lock: # radical but this doesn't frequently happen + if self._cache: + # Normally this is done by openerp.tools.ormcache + # but since we do not use it, set it by ourself. + self.pool._any_cache_cleared = True self._cache = {} def _filter_visible_menus(self, cr, uid, ids, context=None): diff --git a/openerp/modules/registry.py b/openerp/modules/registry.py index c5caeeee086..4dcb811da6b 100644 --- a/openerp/modules/registry.py +++ b/openerp/modules/registry.py @@ -126,6 +126,11 @@ class Registry(object): """ for model in self.models.itervalues(): model.clear_caches() + # Special case for ir_ui_menu which does not use openerp.tools.ormcache. + ir_ui_menu = self.models.get('ir.ui.menu') + if ir_ui_menu: + ir_ui_menu.clear_cache() + # Useful only in a multi-process context. def reset_any_cache_cleared(self):