diff --git a/addons/base/controllers/main.py b/addons/base/controllers/main.py index e8e224c600d..15d0b9951c7 100644 --- a/addons/base/controllers/main.py +++ b/addons/base/controllers/main.py @@ -300,22 +300,21 @@ def load_actions_from_ir_values(req, key, key2, models, meta, context): for id, name, action in actions] def clean_action(action, session): + action.setdefault('flags', {}) if action['type'] != 'ir.actions.act_window': return action # values come from the server, we can just eval them - if isinstance(action.get('context', None), basestring): + if isinstance(action.get('context'), basestring): action['context'] = eval( action['context'], session.evaluation_context()) or {} - if isinstance(action.get('domain', None), basestring): + if isinstance(action.get('domain'), basestring): action['domain'] = eval( action['domain'], session.evaluation_context( action.get('context', {}))) or [] - if 'flags' not in action: - # Set empty flags dictionary for web client. - action['flags'] = dict() + return fix_view_modes(action) def generate_views(action):