summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2019-05-27 09:27:21 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2019-06-17 13:21:28 +0200
commit1303ccd51e500e3764d5b0feccd23c9af3b572e7 (patch)
treec93ba66da837f440d78c5e062262f0b321f1be7c /ishtar_common
parent1ae1a5c814b92265830c508d821dbd14e339fff5 (diff)
downloadIshtar-1303ccd51e500e3764d5b0feccd23c9af3b572e7.tar.bz2
Ishtar-1303ccd51e500e3764d5b0feccd23c9af3b572e7.zip
Statistics: manage units
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/models.py4
-rw-r--r--ishtar_common/templates/blocks/DataTables-stats.html3
-rw-r--r--ishtar_common/views_item.py13
3 files changed, 13 insertions, 7 deletions
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 @@
<label for="stats_sum-{{name}}">{% trans "Sum" %}</label>
<select id="stats_sum-{{name}}" name="stats_sum">
{% for sum_var, sum_var_lbl in current_model.STATISTIC_SUM_VARIABLE.items %}
- <option value="{{sum_var}}"{% if forloop.first %} selected='selected'{% endif %}>{{sum_var_lbl}}</option>
+ <option value="{{sum_var}}"{% if forloop.first %}
+ selected='selected'{% endif %}>{{sum_var_lbl.0}}</option>
{% endfor %}
</select>
</p>
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):