From f8aba7b34710719b70f03d4f3b6a14a4ee0bbee6 Mon Sep 17 00:00:00 2001 From: Romain Derie Date: Tue, 24 Sep 2019 11:46:07 +0000 Subject: [PATCH] [FIX] website: make 'Go to website' redirect to correct website Before this commit, 'Go to website' in website module dashboard might not redirect to the correct website. It would just redirect to `/` (href) without forcing the website selected in the dashboard. task-2063252 Closes #36390 closes odoo/odoo#37359 Signed-off-by: Nicolas Martinelli (nim) --- addons/website/controllers/backend.py | 6 ++++-- addons/website/static/src/js/backend/dashboard.js | 12 +++++++++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/addons/website/controllers/backend.py b/addons/website/controllers/backend.py index b558620a0f5..6a79b8d316c 100644 --- a/addons/website/controllers/backend.py +++ b/addons/website/controllers/backend.py @@ -26,8 +26,10 @@ class WebsiteBackend(http.Controller): current_website = website_id and Website.browse(website_id) or Website.get_current_website() multi_website = request.env.user.has_group('website.group_multi_website') - dashboard_data['websites'] = (multi_website and request.env['website'].search([]) or current_website).read(['id', 'name']) - for website in dashboard_data['websites']: + websites = multi_website and request.env['website'].search([]) or current_website + dashboard_data['websites'] = websites.read(['id', 'name']) + for rec, website in zip(websites, dashboard_data['websites']): + website['domain'] = rec._get_http_domain() if website['id'] == current_website.id: website['selected'] = True diff --git a/addons/website/static/src/js/backend/dashboard.js b/addons/website/static/src/js/backend/dashboard.js index dda40102904..a1f0cf9ff58 100644 --- a/addons/website/static/src/js/backend/dashboard.js +++ b/addons/website/static/src/js/backend/dashboard.js @@ -133,6 +133,12 @@ var Dashboard = AbstractAction.extend({ }).open(); }, + on_go_to_website: function (ev) { + ev.preventDefault(); + var website = _.findWhere(this.websites, {selected: true}); + window.location.href = $.param.querystring(website.domain + '/', {'fw': website.id}); + }, + on_save_ga_client_id: function(ga_client_id, ga_analytics_key) { var self = this; return this._rpc({ @@ -393,10 +399,14 @@ var Dashboard = AbstractAction.extend({ self.on_website_button($(ev.target).data('website-id')); }); } + + var $buttons = $(QWeb.render("website.GoToButtons")); + $buttons.on('click', this.on_go_to_website.bind(this)); + this.updateControlPanel({ cp_content: { $searchview: this.$searchview, - $buttons: QWeb.render("website.GoToButtons"), + $buttons: $buttons, }, }); },