summaryrefslogtreecommitdiff
path: root/ishtar_common/views_item.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/views_item.py')
-rw-r--r--ishtar_common/views_item.py31
1 files changed, 20 insertions, 11 deletions
diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py
index 145c56ca4..5b32a5fce 100644
--- a/ishtar_common/views_item.py
+++ b/ishtar_common/views_item.py
@@ -1207,19 +1207,29 @@ def _get_data_from_query_old(items, query_table_cols, request,
def _get_json_stats(items, stats_sum_variable, stats_modality_1,
stats_modality_2):
- q = items.values(stats_modality_1, stats_modality_2)
+ if stats_modality_2:
+ q = items.values(stats_modality_1, stats_modality_2)
+ else:
+ q = items.values(stats_modality_1)
if stats_sum_variable == 'pk':
q = q.annotate(sum=Count('pk'))
else:
q = q.annotate(sum=Sum(stats_sum_variable))
data = []
- for values in q.order_by(stats_modality_1, stats_modality_2).all():
- modality_1 = values[stats_modality_1]
- if not data or data[-1][0] != modality_1:
- data.append([modality_1, []])
- data[-1][1].append(
- (values[stats_modality_2], values["sum"])
- )
+ if stats_modality_2 and stats_modality_2 != stats_modality_1:
+ q = q.order_by(stats_modality_1, stats_modality_2)
+ for values in q.all():
+ modality_1 = values[stats_modality_1]
+ if not data or data[-1][0] != modality_1:
+ data.append([modality_1, []])
+ data[-1][1].append(
+ (values[stats_modality_2], values["sum"])
+ )
+ else:
+ q = q.order_by(stats_modality_1)
+ for values in q.all():
+ modality_1 = values[stats_modality_1]
+ data.append([modality_1, values["sum"]])
data = json.dumps({"data": data})
return HttpResponse(data, content_type='application/json')
@@ -1634,9 +1644,8 @@ def get_item(model, func_name, default_name, extra_request_keys=None,
if not stats_modality_1 or \
stats_modality_1 not in model.STATISTIC_MODALITIES:
stats_modality_1 = model.STATISTIC_MODALITIES[0]
- if not stats_modality_2 or \
- stats_modality_2 not in model.STATISTIC_MODALITIES:
- stats_modality_2 = model.STATISTIC_MODALITIES[1]
+ if stats_modality_2 not in model.STATISTIC_MODALITIES:
+ stats_modality_2 = None
stats_sum_variable = request_items.get('stats_sum_variable', None)
stats_sum_variable_keys = list(model.STATISTIC_SUM_VARIABLE.keys())
if not stats_sum_variable or \