From 1303ccd51e500e3764d5b0feccd23c9af3b572e7 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Mon, 27 May 2019 09:27:21 +0200 Subject: Statistics: manage units --- ishtar_common/models.py | 4 ++-- ishtar_common/templates/blocks/DataTables-stats.html | 3 ++- ishtar_common/views_item.py | 13 +++++++++---- 3 files changed, 13 insertions(+), 7 deletions(-) (limited to 'ishtar_common') diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 032004e2f..025e21f61 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -1936,8 +1936,8 @@ class StatisticItem: # OrderedDict([('year', _("Year")), # ("operation_type__label", _("Operation type"))]) STATISTIC_SUM_VARIABLE = OrderedDict( - (("pk", _("Number")),) - ) # example: "Price", "Volume" + (("pk", (_("Number"), 1)),) + ) # example: "Price", "Volume" - the number is a multiplier class BaseHistorizedItem(StatisticItem, TemplateItem, FullSearch, Imported, diff --git a/ishtar_common/templates/blocks/DataTables-stats.html b/ishtar_common/templates/blocks/DataTables-stats.html index a1fcc8743..b17112200 100644 --- a/ishtar_common/templates/blocks/DataTables-stats.html +++ b/ishtar_common/templates/blocks/DataTables-stats.html @@ -29,7 +29,8 @@

diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py index f5dedb8d5..7b01f36b2 100644 --- a/ishtar_common/views_item.py +++ b/ishtar_common/views_item.py @@ -1215,7 +1215,7 @@ def _format_modality(value): def _get_json_stats(items, stats_sum_variable, stats_modality_1, - stats_modality_2): + stats_modality_2, multiply=1): if stats_modality_2: q = items.values(stats_modality_1, stats_modality_2) else: @@ -1232,13 +1232,15 @@ def _get_json_stats(items, stats_sum_variable, stats_modality_1, if not data or data[-1][0] != modality_1: data.append([modality_1, []]) data[-1][1].append( - (_format_modality(values[stats_modality_2]), values["sum"]) + (_format_modality(values[stats_modality_2]), + (values["sum"] or 0) * multiply) ) else: q = q.order_by(stats_modality_1) for values in q.all(): modality_1 = values[stats_modality_1] - data.append([_format_modality(modality_1), values["sum"]]) + data.append([_format_modality(modality_1), + (values["sum"] or 0) * multiply]) data = json.dumps({"data": data}) return HttpResponse(data, content_type='application/json') @@ -1659,8 +1661,11 @@ def get_item(model, func_name, default_name, extra_request_keys=None, if not stats_sum_variable or \ stats_sum_variable not in stats_sum_variable_keys: stats_sum_variable = stats_sum_variable_keys[0] + multiply = model.STATISTIC_SUM_VARIABLE[stats_sum_variable][1] return _get_json_stats( - items, stats_sum_variable, stats_modality_1, stats_modality_2) + items, stats_sum_variable, stats_modality_1, stats_modality_2, + multiply=multiply + ) query_table_cols = [] for idx, cols in enumerate(table_cols): -- cgit v1.2.3