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 \  | 
