From 62c0a161efa9eae82992a70992dc40e1f42da962 Mon Sep 17 00:00:00 2001 From: Jeremy Kersten Date: Wed, 19 Oct 2016 17:42:12 +0200 Subject: [PATCH] [FIX] web_planner, account: add support for enterprise module + fix link 'Revenue Recognition' Now, when the module is not found, instead to display a traceback, we open a popup to upgrade to Enterprise. That will be wrong in case of outdated / wrong link, but in most cases, it is because it is an enterprise module. This commit closes #13882 TODO: Remove zindex 1051 on planner in master/saas-14 --- addons/account/views/web_planner_data.xml | 2 +- addons/web_planner/models/web_planner.py | 2 ++ .../static/src/js/web_planner_common.js | 36 ++++++++++++++++++- 3 files changed, 38 insertions(+), 2 deletions(-) diff --git a/addons/account/views/web_planner_data.xml b/addons/account/views/web_planner_data.xml index d3039de74b6..99f3cb86e52 100644 --- a/addons/account/views/web_planner_data.xml +++ b/addons/account/views/web_planner_data.xml @@ -408,7 +408,7 @@

Revenue Recognition

Use in conjunction with contracts to calculate your monthly revenue for multi-month contracts.

- Install Now diff --git a/addons/web_planner/models/web_planner.py b/addons/web_planner/models/web_planner.py index 365b9fdc09f..be722e911da 100644 --- a/addons/web_planner/models/web_planner.py +++ b/addons/web_planner/models/web_planner.py @@ -65,6 +65,8 @@ class Planner(models.Model): module = self.env['ir.module.module'].sudo().search([('name', '=', module_name)], limit=1) if module: params['id'] = module.id + else: + return "#show_enterprise" return "/web#%s" % (urlencode(params),) @api.model diff --git a/addons/web_planner/static/src/js/web_planner_common.js b/addons/web_planner/static/src/js/web_planner_common.js index 93bcf2bc775..ad27739f2c5 100644 --- a/addons/web_planner/static/src/js/web_planner_common.js +++ b/addons/web_planner/static/src/js/web_planner_common.js @@ -49,6 +49,7 @@ var PlannerDialog = Widget.extend({ category_selector: 'div[menu-category-id]', events: { 'click li a[href^="#"]:not([data-toggle="collapse"])': 'change_page', + 'click a[href^="#show_enterprise"]': 'show_enterprise', 'click button.mark_as_done': 'click_on_done', 'click a.btn-next': 'change_to_next_page', 'click .o_planner_close_block span': 'close_modal', @@ -420,7 +421,40 @@ var PlannerDialog = Widget.extend({ destroy: function() { this.$el.modal('hide'); return this._super.apply(this, arguments); - } + }, + show_enterprise: function(ev) { + ev.preventDefault(); + var message = $(QWeb.render('EnterpriseUpgrade')); + var buttons = [ + { + text: _t("Upgrade now"), + classes: 'btn-primary', + close: true, + click: this.confirm_upgrade, + }, + { + text: _t("Cancel"), + close: true, + }, + ]; + var dialog = new Dialog(this, { + size: 'medium', + buttons: buttons, + $content: $('
', { + html: message, + }), + title: _t("Odoo Enterprise"), + }).open(); + + // force dialog to be hover the planner + dialog.$el.parents('.modal').css('z-index', 1052); + return dialog; + }, + confirm_upgrade: function() { + new Model("res.users").call("search_count", [[["share", "=", false]]]).then(function(data) { + window.location = "https://www.odoo.com/odoo-enterprise/upgrade?utm_medium=community_upgrade&num_users=" + data; + }); + }, }); return {