summaryrefslogtreecommitdiff
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
commit88fa8d535bc723bae9b4e06460ca0bf639ed57e1 (patch)
treec93ba66da837f440d78c5e062262f0b321f1be7c
parentb19362fbbe2fb500f095ba61a17d86687f329d95 (diff)
downloadIshtar-88fa8d535bc723bae9b4e06460ca0bf639ed57e1.tar.bz2
Ishtar-88fa8d535bc723bae9b4e06460ca0bf639ed57e1.zip
Statistics: manage units
-rw-r--r--archaeological_files/models.py7
-rw-r--r--archaeological_finds/models_finds.py8
-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
5 files changed, 21 insertions, 14 deletions
diff --git a/archaeological_files/models.py b/archaeological_files/models.py
index c4bdb68f5..e089df24e 100644
--- a/archaeological_files/models.py
+++ b/archaeological_files/models.py
@@ -103,9 +103,10 @@ class File(ClosedItem, DocumentItem, BaseHistorizedItem, OwnPerms, ValueGetter,
key for key, lbl in STATISTIC_MODALITIES_OPTIONS.items()]
STATISTIC_SUM_VARIABLE = OrderedDict(
(
- ("pk", _("Number")),
- ("total_surface", _(u"Total surface (m2)")),
- ("total_developed_surface", _(u"Total developed surface (m2)")),
+ ("pk", (_("Number"), 1)),
+ ("total_surface", (_(u"Total surface (km2)"), 0.000001)),
+ ("total_developed_surface", (
+ _(u"Total developed surface (km2)"), 0.000001)),
)
)
diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py
index 57ae1549c..7daf4cbec 100644
--- a/archaeological_finds/models_finds.py
+++ b/archaeological_finds/models_finds.py
@@ -840,10 +840,10 @@ class Find(BulkUpdatedItem, ValueGetter, DocumentItem, BaseHistorizedItem,
key for key, lbl in STATISTIC_MODALITIES_OPTIONS.items()]
STATISTIC_SUM_VARIABLE = OrderedDict(
(
- ("pk", _("Number")),
- ("weight", _("Weight")),
- ("estimated_value", _("Estimated value")),
- ("insurance_value", _("Insurance value")),
+ ("pk", (_("Number"), 1)),
+ ("weight", (_("Weight (kg)"), 0.001)),
+ ("estimated_value", (_("Estimated value"), 1)),
+ ("insurance_value", (_("Insurance value"), 1)),
)
)
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):