From ce4aa39c2c505060bbf382ad728af24f809a3893 Mon Sep 17 00:00:00 2001 From: Enric Tobella Date: Tue, 9 May 2023 09:39:20 +0200 Subject: [PATCH] [IMP] kpi_dashboard: Allow installation with EE --- kpi_dashboard/__manifest__.py | 2 +- .../migrations/14.0.1.2.0/pre-migration.py | 30 +++++++++++++++++++ .../models/ir_actions_act_window_view.py | 3 +- kpi_dashboard/models/ir_ui_view.py | 3 +- kpi_dashboard/models/kpi_dashboard.py | 2 +- .../static/src/js/dashboard_controller.js | 4 +-- .../static/src/js/dashboard_renderer.js | 2 +- kpi_dashboard/static/src/js/dashboard_view.js | 6 ++-- kpi_dashboard/static/src/js/field_widget.js | 2 +- .../static/src/scss/kpi_dashboard.scss | 2 +- kpi_dashboard/static/src/xml/dashboard.xml | 4 +-- kpi_dashboard/views/kpi_dashboard.xml | 4 +-- 12 files changed, 48 insertions(+), 16 deletions(-) create mode 100644 kpi_dashboard/migrations/14.0.1.2.0/pre-migration.py diff --git a/kpi_dashboard/__manifest__.py b/kpi_dashboard/__manifest__.py index 8732f8e6b..d740c8f2a 100644 --- a/kpi_dashboard/__manifest__.py +++ b/kpi_dashboard/__manifest__.py @@ -5,7 +5,7 @@ "name": "Kpi Dashboard", "summary": """ Create Dashboards using kpis""", - "version": "14.0.1.1.1", + "version": "14.0.1.2.0", "license": "AGPL-3", "author": "Creu Blanca,Odoo Community Association (OCA)", "website": "https://github.com/OCA/reporting-engine", diff --git a/kpi_dashboard/migrations/14.0.1.2.0/pre-migration.py b/kpi_dashboard/migrations/14.0.1.2.0/pre-migration.py new file mode 100644 index 000000000..4f3fbeb6e --- /dev/null +++ b/kpi_dashboard/migrations/14.0.1.2.0/pre-migration.py @@ -0,0 +1,30 @@ +# Copyright 2023 CreuBlanca +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + + +from openupgradelib import openupgrade + + +@openupgrade.migrate() +def migrate(env, version): + """We need to do the changes on pre-migration in order to avoid cascades""" + openupgrade.logged_query( + env.cr, + """ + UPDATE ir_ui_view as iuv + SET type = 'kpi_dashboard' + FROM ir_model_data as imd + WHERE + iuv.id = imd.res_id + AND imd.module = 'kpi_dashboard' + AND imd.name = 'kpi_dashboard_dashboard_view' + """, + ) + openupgrade.logged_query( + env.cr, + """ + UPDATE ir_act_window + SET view_mode = 'kpi_dashboard' + WHERE view_mode = 'dashboard' AND res_model = 'kpi.dashboard' +""", + ) diff --git a/kpi_dashboard/models/ir_actions_act_window_view.py b/kpi_dashboard/models/ir_actions_act_window_view.py index c0e96fc71..16e5ca5e0 100644 --- a/kpi_dashboard/models/ir_actions_act_window_view.py +++ b/kpi_dashboard/models/ir_actions_act_window_view.py @@ -8,5 +8,6 @@ class IrActionsActWindowView(models.Model): _inherit = "ir.actions.act_window.view" view_mode = fields.Selection( - selection_add=[("dashboard", "Dashboard")], ondelete={"dashboard": "cascade"} + selection_add=[("kpi_dashboard", "Dashboard")], + ondelete={"kpi_dashboard": "cascade"}, ) diff --git a/kpi_dashboard/models/ir_ui_view.py b/kpi_dashboard/models/ir_ui_view.py index f0d8fdb5f..d473d6db5 100644 --- a/kpi_dashboard/models/ir_ui_view.py +++ b/kpi_dashboard/models/ir_ui_view.py @@ -8,5 +8,6 @@ class IrUiView(models.Model): _inherit = "ir.ui.view" type = fields.Selection( - selection_add=[("dashboard", "Dashboard")], ondelete={"dashboard": "cascade"} + selection_add=[("kpi_dashboard", "Dashboard")], + ondelete={"kpi_dashboard": "cascade"}, ) diff --git a/kpi_dashboard/models/kpi_dashboard.py b/kpi_dashboard/models/kpi_dashboard.py index 0af044470..fe12ab1b8 100644 --- a/kpi_dashboard/models/kpi_dashboard.py +++ b/kpi_dashboard/models/kpi_dashboard.py @@ -90,7 +90,7 @@ class KpiDashboard(models.Model): return { "name": self.name, "res_model": self._name, - "view_mode": "dashboard", + "view_mode": "kpi_dashboard", "res_id": self.id, } diff --git a/kpi_dashboard/static/src/js/dashboard_controller.js b/kpi_dashboard/static/src/js/dashboard_controller.js index e433bd077..ee8e9bc16 100644 --- a/kpi_dashboard/static/src/js/dashboard_controller.js +++ b/kpi_dashboard/static/src/js/dashboard_controller.js @@ -67,7 +67,7 @@ odoo.define("kpi_dashboard.DashboardController", function (require) { action_id: action, context_to_save: {res_id: self.initialState.res_id}, domain: [("id", "=", self.initialState.res_id)], - view_mode: "dashboard", + view_mode: "kpi_dashboard", name: name, }, }) @@ -88,7 +88,7 @@ odoo.define("kpi_dashboard.DashboardController", function (require) { // HOOK Function this.$buttons.on( "click", - ".o_dashboard_button_add", + ".o_kpi_dashboard_button_add", this._addDashboard.bind(this) ); }, diff --git a/kpi_dashboard/static/src/js/dashboard_renderer.js b/kpi_dashboard/static/src/js/dashboard_renderer.js index 0a080c4a0..108a8c0a7 100644 --- a/kpi_dashboard/static/src/js/dashboard_renderer.js +++ b/kpi_dashboard/static/src/js/dashboard_renderer.js @@ -7,7 +7,7 @@ odoo.define("kpi_dashboard.DashboardRenderer", function (require) { var qweb = core.qweb; var DashboardRenderer = BasicRenderer.extend({ - className: "o_dashboard_view", + className: "o_kpi_dashboard_view", _getDashboardWidget: function (kpi) { var Widget = registry.getAny([kpi.widget, "abstract"]); var widget = new Widget(this, kpi); diff --git a/kpi_dashboard/static/src/js/dashboard_view.js b/kpi_dashboard/static/src/js/dashboard_view.js index 114fd061e..8878f8a88 100644 --- a/kpi_dashboard/static/src/js/dashboard_view.js +++ b/kpi_dashboard/static/src/js/dashboard_view.js @@ -14,9 +14,9 @@ odoo.define("kpi_dashboard.DashboardView", function (require) { jsLibs: ["/kpi_dashboard/static/lib/gridster/jquery.dsmorse-gridster.min.js"], cssLibs: ["/kpi_dashboard/static/lib/gridster/jquery.dsmorse-gridster.min.css"], accesskey: "d", - display_name: _lt("Dashboard"), + display_name: _lt("KPI Dashboard"), icon: "fa-tachometer", - viewType: "dashboard", + viewType: "kpi_dashboard", config: _.extend({}, BasicView.prototype.config, { Controller: DashboardController, Renderer: DashboardRenderer, @@ -34,7 +34,7 @@ odoo.define("kpi_dashboard.DashboardView", function (require) { }, }); - view_registry.add("dashboard", DashboardView); + view_registry.add("kpi_dashboard", DashboardView); return DashboardView; }); diff --git a/kpi_dashboard/static/src/js/field_widget.js b/kpi_dashboard/static/src/js/field_widget.js index 00454f345..fe24b1205 100644 --- a/kpi_dashboard/static/src/js/field_widget.js +++ b/kpi_dashboard/static/src/js/field_widget.js @@ -10,7 +10,7 @@ odoo.define("kpi_dashboard.KpiFieldWidget", function (require) { var KpiFieldWidget = basic_fields.FieldChar.extend({ jsLibs: ["/kpi_dashboard/static/lib/gridster/jquery.dsmorse-gridster.min.js"], cssLibs: ["/kpi_dashboard/static/lib/gridster/jquery.dsmorse-gridster.min.css"], - className: "o_dashboard_view", + className: "o_kpi_dashboard_view", _renderReadonly: function () { this.$el.html($(qweb.render("dashboard_kpi.dashboard"))); var marginx = 0; diff --git a/kpi_dashboard/static/src/scss/kpi_dashboard.scss b/kpi_dashboard/static/src/scss/kpi_dashboard.scss index 837252aae..d63ea78a2 100644 --- a/kpi_dashboard/static/src/scss/kpi_dashboard.scss +++ b/kpi_dashboard/static/src/scss/kpi_dashboard.scss @@ -1,4 +1,4 @@ -.o_dashboard_view { +.o_kpi_dashboard_view { height: 100%; @include o-webclient-padding( $top: $o-horizontal-padding/2, diff --git a/kpi_dashboard/static/src/xml/dashboard.xml b/kpi_dashboard/static/src/xml/dashboard.xml index c710744ab..bcfefde04 100644 --- a/kpi_dashboard/static/src/xml/dashboard.xml +++ b/kpi_dashboard/static/src/xml/dashboard.xml @@ -84,10 +84,10 @@ -