diff --git a/openerp/addons/base/ir/ir_ui_view.py b/openerp/addons/base/ir/ir_ui_view.py index 843c5ad3400..0e2e38c6acd 100644 --- a/openerp/addons/base/ir/ir_ui_view.py +++ b/openerp/addons/base/ir/ir_ui_view.py @@ -386,6 +386,7 @@ actual arch. :rtype: list of tuples :return: [(view_arch,view_id), ...] """ + views = self.browse() user_groups = self.env.user.groups_id conditions = [ @@ -396,13 +397,16 @@ actual arch. ] if self.pool._init and not self._context.get('load_all_views'): # Module init currently in progress, only consider views from - # modules whose code is already loaded + # modules whose code is already loaded and explicitly asked views + check_view_ids = self._context.get('check_view_ids') + if check_view_ids: + views = self.search(conditions + [('id', 'in', check_view_ids)]) + conditions.extend([ - '|', ('model_ids.module', 'in', tuple(self.pool._init_modules)), - ('id', 'in', self._context.get('check_view_ids') or (0,)), ]) - views = self.search(conditions) + + views += self.search(conditions) return [(view.arch, view.id) for view in views.sudo()