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.py16
1 files changed, 11 insertions, 5 deletions
diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py
index 7526edcec..0fe65356b 100644
--- a/ishtar_common/views_item.py
+++ b/ishtar_common/views_item.py
@@ -1843,8 +1843,14 @@ def _get_json_stats_optimized(
for stat in (stats_modality_1, stats_modality_2):
if not stat:
continue
- if stat.endswith("__year"):
- q = q.annotate(**{stat: ExtractYear(stat[: -len("__year")])})
+ if stat.endswith("__FILTERyear"):
+ q = q.annotate(**{stat: ExtractYear(stat[:-len("__FILTERyear")])})
+ elif "__splitpart_" in stat:
+ st, args = stat.split("__splitpart_")
+ sep, index = args.split("_")
+ index = int(index)
+ stat = f"{st}_modality"
+ q = q.annotate(**{stat: SplitPart(F(st), Value(sep), index)})
value_keys.append(stat)
q = q.values(*value_keys)
if stats_sum_variable == "pk":
@@ -1886,9 +1892,9 @@ def _get_json_stats(
if not stat:
value_keys.append(stat)
continue
- if stat.endswith("__year"):
- q = q.annotate(**{stat: ExtractYear(stat[:-len("__year")])})
- if "__splitpart_" in stat:
+ if stat.endswith("__FILTERyear"):
+ q = q.annotate(**{stat: ExtractYear(stat[:-len("__FILTERyear")])})
+ elif "__splitpart_" in stat:
st, args = stat.split("__splitpart_")
sep, index = args.split("_")
index = int(index)