From d68101c288786573e773deb38231192ed747e972 Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Fri, 18 Jan 2019 23:09:04 +0100 Subject: [PATCH 5/5] make statistics on evolutions (fixes #14297) --- tests/olap.model | 35 +++++++++++++++++++++++++++++++++++ wcs_olap/feeder.py | 21 +++++++++++++++++++++ 2 files changed, 56 insertions(+) diff --git a/tests/olap.model b/tests/olap.model index 25f267c..38f97a3 100644 --- a/tests/olap.model +++ b/tests/olap.model @@ -133,6 +133,15 @@ "name" : "count", "type" : "integer" }, + { + "expression" : "count(evolution.id)", + "join" : [ + "evolution" + ], + "label" : "nombre de demandes ayant changée de statut", + "name" : "count", + "type" : "integer" + }, { "expression" : "avg(endpoint_delay)", "label" : "délai de traitement moyen", @@ -228,6 +237,17 @@ "value" : "status.id", "value_label" : "status.label" }, + { + "join" : [ + "evolution", + "evolution_status" + ], + "label" : "statut dans l'historique", + "name" : "evolution_status", + "type" : "integer", + "value" : "evolution_status.id", + "value_label" : "evolution_status.label" + }, { "filter" : false, "join" : [ @@ -318,6 +338,12 @@ "name" : "status", "table" : "status_demande" }, + { + "detail" : "id", + "master" : "evolution.status_id", + "name" : "evolution_status", + "table" : "status_demande" + }, { "detail" : "id", "master" : "function__receiver", @@ -346,6 +372,15 @@ "name" : "count", "type" : "integer" }, + { + "expression" : "count(evolution.id)", + "join" : [ + "evolution" + ], + "label" : "nombre de demandes ayant changée de statut", + "name" : "count", + "type" : "integer" + }, { "expression" : "avg(endpoint_delay)", "label" : "délai de traitement moyen", diff --git a/wcs_olap/feeder.py b/wcs_olap/feeder.py index c45a45e..ca0aac2 100644 --- a/wcs_olap/feeder.py +++ b/wcs_olap/feeder.py @@ -200,6 +200,13 @@ class WcsOlapFeeder(object): 'type': 'integer', 'expression': 'count({fact_table}.id)', }, + { + 'name': 'count', + 'label': u'nombre de demandes ayant changée de statut', + 'type': 'integer', + 'expression': 'count(evolution.id)', + 'join': ['evolution'], + }, { 'name': 'avg_endpoint_delay', 'label': 'délai de traitement moyen', @@ -841,6 +848,20 @@ class WcsFormdefFeeder(object): 'value': 'status.id', 'value_label': 'status.label', }) + cube['joins'].append({ + 'name': 'evolution_status', + 'table': self.status_table_name, + 'master': 'evolution.status_id', + 'detail': 'id', + }) + cube['dimensions'].append({ + 'name': 'evolution_status', + 'label': 'statut dans l\'historique', + 'join': ['evolution', 'evolution_status'], + 'type': 'integer', + 'value': 'evolution_status.id', + 'value_label': 'evolution_status.label', + }) # add dimension for function for function, name in self.formdef.schema.workflow.functions.iteritems(): -- 2.20.1