diff --git a/openerp/addons/base/ir/ir_model.py b/openerp/addons/base/ir/ir_model.py index 74589003611..633db6de6a3 100644 --- a/openerp/addons/base/ir/ir_model.py +++ b/openerp/addons/base/ir/ir_model.py @@ -557,7 +557,9 @@ class ir_model_access(osv.osv): model_name = model # TransientModel records have no access rights, only an implicit access rule - if self.pool.get(model_name).is_transient(): + if not self.pool.get(model_name): + _logger.error('Missing model %s' % (model_name, )) + elif self.pool.get(model_name).is_transient(): return True # We check if a specific rule exists diff --git a/openerp/addons/base/ir/ir_ui_menu.py b/openerp/addons/base/ir/ir_ui_menu.py index 4bbff5479c3..213cff18cc6 100644 --- a/openerp/addons/base/ir/ir_ui_menu.py +++ b/openerp/addons/base/ir/ir_ui_menu.py @@ -265,7 +265,7 @@ class ir_ui_menu(osv.osv): } if menu.action and menu.action.type in ('ir.actions.act_window','ir.actions.client') and menu.action.res_model: obj = self.pool.get(menu.action.res_model) - if obj._needaction: + if obj and obj._needaction: if menu.action.type=='ir.actions.act_window': dom = menu.action.domain and eval(menu.action.domain, {'uid': uid}) or [] else: