From 5764f2464e36d899a3868199fde534b51801374a Mon Sep 17 00:00:00 2001 From: Enric Tobella Date: Wed, 28 Nov 2018 00:40:23 +0100 Subject: [PATCH] [IMP] kpi: Add Kanban Views. Improve python code, Allow to access Odoo --- kpi/__manifest__.py | 15 ++-- kpi/data/{kpi.xml => kpi_data.xml} | 0 kpi/models/kpi.py | 12 +++- kpi/models/kpi_history.py | 2 +- kpi/security/ir.model.access.csv | 8 +-- kpi/security/kpi_security.xml | 7 ++ ...pi_category.xml => kpi_category_views.xml} | 0 ...{kpi_history.xml => kpi_history_views.xml} | 0 ...ange.xml => kpi_threshold_range_views.xml} | 0 ..._threshold.xml => kpi_threshold_views.xml} | 0 kpi/views/{kpi.xml => kpi_views.xml} | 72 ++++++++++++++++--- kpi/views/menu.xml | 31 ++++---- 12 files changed, 111 insertions(+), 36 deletions(-) rename kpi/data/{kpi.xml => kpi_data.xml} (100%) rename kpi/views/{kpi_category.xml => kpi_category_views.xml} (100%) rename kpi/views/{kpi_history.xml => kpi_history_views.xml} (100%) rename kpi/views/{kpi_threshold_range.xml => kpi_threshold_range_views.xml} (100%) rename kpi/views/{kpi_threshold.xml => kpi_threshold_views.xml} (100%) rename kpi/views/{kpi.xml => kpi_views.xml} (56%) diff --git a/kpi/__manifest__.py b/kpi/__manifest__.py index d14cc89e..ad7cd1a9 100644 --- a/kpi/__manifest__.py +++ b/kpi/__manifest__.py @@ -10,17 +10,18 @@ "category": "Report", "depends": [ 'base_external_dbsource', + 'web_widget_color', ], "data": [ - 'security/ir.model.access.csv', 'security/kpi_security.xml', - 'views/kpi_category.xml', - 'views/kpi_history.xml', - 'views/kpi_threshold_range.xml', - 'views/kpi_threshold.xml', - 'views/kpi.xml', + 'security/ir.model.access.csv', + 'views/kpi_category_views.xml', + 'views/kpi_history_views.xml', + 'views/kpi_threshold_range_views.xml', + 'views/kpi_threshold_views.xml', + 'views/kpi_views.xml', 'views/menu.xml', - 'data/kpi.xml', + 'data/kpi_data.xml', ], "images": [ "images/kpi_definition.png", diff --git a/kpi/data/kpi.xml b/kpi/data/kpi_data.xml similarity index 100% rename from kpi/data/kpi.xml rename to kpi/data/kpi_data.xml diff --git a/kpi/models/kpi.py b/kpi/models/kpi.py index 69c4cabb..adffe7d4 100644 --- a/kpi/models/kpi.py +++ b/kpi/models/kpi.py @@ -74,6 +74,9 @@ class KPI(models.Model): value = fields.Float(string='Value', compute="_compute_display_last_kpi_value", ) + color = fields.Text('Color', compute="_compute_display_last_kpi_value",) + last_execution = fields.Datetime( + 'Last execution', compute="_compute_display_last_kpi_value",) kpi_type = fields.Selection(( ('python', 'Python'), ('local', 'SQL - Local DB'), @@ -109,9 +112,14 @@ class KPI(models.Model): for obj in self: history_ids = history_obj.search([("kpi_id", "=", obj.id)]) if history_ids: - obj.value = obj.history_ids[0].value + his = obj.history_ids[0] + obj.value = his.value + obj.color = his.color + obj.last_execution = his.date else: obj.value = 0 + obj.color = '#FFFFFF' + obj.last_execution = False @api.multi def compute_kpi_value(self): @@ -131,7 +139,7 @@ class KPI(models.Model): if is_one_value(res): kpi_value = res[0]['value'] elif obj.kpi_type == 'python': - kpi_value = safe_eval(obj.kpi_code) + kpi_value = safe_eval(obj.kpi_code, {'self': obj}) threshold_obj = obj.threshold_id values = { diff --git a/kpi/models/kpi_history.py b/kpi/models/kpi_history.py index 10fe4f6d..256aa518 100644 --- a/kpi/models/kpi_history.py +++ b/kpi/models/kpi_history.py @@ -18,7 +18,7 @@ class KPIHistory(models.Model): 'Execution Date', required=True, readonly=True, - default=fields.Datetime.now() + default=lambda r: fields.Datetime.now() ) value = fields.Float('Value', required=True, readonly=True) color = fields.Text('Color', required=True, diff --git a/kpi/security/ir.model.access.csv b/kpi/security/ir.model.access.csv index 59ff6e6a..a01bf4dc 100644 --- a/kpi/security/ir.model.access.csv +++ b/kpi/security/ir.model.access.csv @@ -4,8 +4,8 @@ "access_kpi_category_user","kpi.category.user","model_kpi_category","base.group_user",1,0,0,0 "access_kpi_threshold_user","kpi.threshold.user","model_kpi_threshold","base.group_user",1,0,0,0 "access_kpi_threshold_range_user","kpi.threshold.range.user","model_kpi_threshold_range","base.group_user",1,0,0,0 -"access_kpi_manager","kpi.manager","model_kpi","base.group_user",1,1,1,1 -"access_kpi_category_manager","kpi.category.manager","model_kpi_category","base.group_user",1,1,1,1 -"access_kpi_threshold_manager","kpi.threshold.manager","model_kpi_threshold","base.group_user",1,1,1,1 -"access_kpi_threshold_range_manager","kpi.threshold.range.manager","model_kpi_threshold_range","base.group_user",1,1,1,1 +"access_kpi_manager","kpi.manager","model_kpi","kpi.group_kpi_manager",1,1,1,1 +"access_kpi_category_manager","kpi.category.manager","model_kpi_category","kpi.group_kpi_manager",1,1,1,1 +"access_kpi_threshold_manager","kpi.threshold.manager","model_kpi_threshold","kpi.group_kpi_manager",1,1,1,1 +"access_kpi_threshold_range_manager","kpi.threshold.range.manager","model_kpi_threshold_range","kpi.group_kpi_manager",1,1,1,1 "access_base_external_dbsource_manager","base.external.dbsource.manager","base_external_dbsource.model_base_external_dbsource","base.group_user",1,1,1,1 diff --git a/kpi/security/kpi_security.xml b/kpi/security/kpi_security.xml index 64153cbb..1fe99a28 100755 --- a/kpi/security/kpi_security.xml +++ b/kpi/security/kpi_security.xml @@ -3,6 +3,13 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). --> + + + Manage KPI's + + + + diff --git a/kpi/views/kpi_category.xml b/kpi/views/kpi_category_views.xml similarity index 100% rename from kpi/views/kpi_category.xml rename to kpi/views/kpi_category_views.xml diff --git a/kpi/views/kpi_history.xml b/kpi/views/kpi_history_views.xml similarity index 100% rename from kpi/views/kpi_history.xml rename to kpi/views/kpi_history_views.xml diff --git a/kpi/views/kpi_threshold_range.xml b/kpi/views/kpi_threshold_range_views.xml similarity index 100% rename from kpi/views/kpi_threshold_range.xml rename to kpi/views/kpi_threshold_range_views.xml diff --git a/kpi/views/kpi_threshold.xml b/kpi/views/kpi_threshold_views.xml similarity index 100% rename from kpi/views/kpi_threshold.xml rename to kpi/views/kpi_threshold_views.xml diff --git a/kpi/views/kpi.xml b/kpi/views/kpi_views.xml similarity index 56% rename from kpi/views/kpi.xml rename to kpi/views/kpi_views.xml index 9e5f5394..a2f56f85 100644 --- a/kpi/views/kpi.xml +++ b/kpi/views/kpi_views.xml @@ -6,6 +6,7 @@ kpi.tree kpi + @@ -16,6 +17,33 @@ + + kpi.kanban + kpi + + + + + + + + + +
+
+
+
+ +
+ +
+
+
+
+
+
+
+
kpi.filter @@ -51,21 +79,26 @@ - - + + - -