From 9abf7a2010ab81f6b501bc68b9185739121c84d7 Mon Sep 17 00:00:00 2001 From: Nicolas Lempereur Date: Fri, 6 Mar 2015 01:52:26 +0100 Subject: [PATCH] [FIX] mass mailing: keep menu when back in backend The menu was not present in 8.0 when going back from the mass mailing email composer to the backend. This fix adds the current action id as a return_action query string parameter and return to the correct action. fixes #5591 opw-629526 --- addons/mass_mailing/models/mass_mailing.py | 2 +- addons/web/static/src/js/views.js | 1 + addons/website_mail/controllers/email_designer.py | 1 + addons/website_mail/models/email_template.py | 2 +- addons/website_mail/views/website_email_designer.xml | 4 ++-- 5 files changed, 6 insertions(+), 4 deletions(-) diff --git a/addons/mass_mailing/models/mass_mailing.py b/addons/mass_mailing/models/mass_mailing.py index 6e2599da139..8b6bb15ec0b 100644 --- a/addons/mass_mailing/models/mass_mailing.py +++ b/addons/mass_mailing/models/mass_mailing.py @@ -550,7 +550,7 @@ class MassMailing(osv.Model): if not len(ids) == 1: raise ValueError('One and only one ID allowed for this action') mail = self.browse(cr, uid, ids[0], context=context) - url = '/website_mail/email_designer?model=mail.mass_mailing&res_id=%d&template_model=%s&enable_editor=1' % (ids[0], mail.mailing_model) + url = '/website_mail/email_designer?model=mail.mass_mailing&res_id=%d&template_model=%s&return_action=%d&enable_editor=1' % (ids[0], mail.mailing_model, context['params']['action']) return { 'name': _('Open with Visual Editor'), 'type': 'ir.actions.act_url', diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js index 8baa9a7c52a..69a85d15632 100644 --- a/addons/web/static/src/js/views.js +++ b/addons/web/static/src/js/views.js @@ -381,6 +381,7 @@ instance.web.ActionManager = instance.web.Widget.extend({ search_disable_custom_filters: action.context && action.context.search_disable_custom_filters }); action.menu_id = options.action_menu_id; + action.context.params = _.extend({ 'action' : action.id }, action.context.params); if (!(type in this)) { console.error("Action manager can't handle action of type " + action.type, action); return $.Deferred().reject(); diff --git a/addons/website_mail/controllers/email_designer.py b/addons/website_mail/controllers/email_designer.py index 157b8efa50f..8fc0c89a15b 100644 --- a/addons/website_mail/controllers/email_designer.py +++ b/addons/website_mail/controllers/email_designer.py @@ -45,6 +45,7 @@ class WebsiteEmailDesigner(http.Controller): 'email_from_field': email_from_field, 'subject_field': subject_field, 'body_field': body_field, + 'return_action': kw.get('return_action', ''), } if getattr(record, body_field): diff --git a/addons/website_mail/models/email_template.py b/addons/website_mail/models/email_template.py index aaf8f32cdc1..9a8c56b46fa 100644 --- a/addons/website_mail/models/email_template.py +++ b/addons/website_mail/models/email_template.py @@ -10,7 +10,7 @@ class EmailTemplate(osv.Model): def action_edit_html(self, cr, uid, ids, context=None): if not len(ids) == 1: raise ValueError('One and only one ID allowed for this action') - url = '/website_mail/email_designer?model=email.template&res_id=%d&enable_editor=1' % (ids[0],) + url = '/website_mail/email_designer?model=email.template&res_id=%d&return_action=%d&enable_editor=1' % (ids[0], context['params']['action']) return { 'name': _('Edit Template'), 'type': 'ir.actions.act_url', diff --git a/addons/website_mail/views/website_email_designer.xml b/addons/website_mail/views/website_email_designer.xml index d230d680ba7..070440fd40e 100644 --- a/addons/website_mail/views/website_email_designer.xml +++ b/addons/website_mail/views/website_email_designer.xml @@ -8,7 +8,7 @@