diff options
Diffstat (limited to 'ishtar_common/views_item.py')
-rw-r--r-- | ishtar_common/views_item.py | 31 |
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 \ |