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.py19
1 files changed, 18 insertions, 1 deletions
diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py
index 94f8489ed..cac99f53f 100644
--- a/ishtar_common/views_item.py
+++ b/ishtar_common/views_item.py
@@ -95,6 +95,10 @@ ENCODING = settings.ENCODING or "utf-8"
HIERARCHIC_LEVELS = 5
+HIERARCHIC_CACHED_FIELDS = (
+ "material_types",
+)
+
LIST_FIELDS = { # key: hierarchic depth
"conservatory_states": HIERARCHIC_LEVELS,
"identifications": HIERARCHIC_LEVELS,
@@ -1568,6 +1572,14 @@ def _manage_hierarchic_fields(model, dct, and_reqs):
req = req[: -(len(base_suffix))] + suffix
else:
current_values = [val]
+ if k_hr in HIERARCHIC_CACHED_FIELDS:
+ cached_key = f"cached_hierarchy_{k_hr}__contains"
+ for idx, nval in enumerate(current_values):
+ if not reqs:
+ reqs = Q(**{cached_key: [nval.upper()]})
+ else:
+ reqs |= Q(**{cached_key: [nval.upper()]})
+ continue
new_req = None
for idx, nval in enumerate(current_values):
@@ -2915,6 +2927,8 @@ def get_item(
search_vector = request_items.get("search_vector", "").strip()
+ print("OKOK1")
+ n = datetime.datetime.now()
# cache only for GUI search
cache_search = search_vector or any(
1 for k in request_items if k.startswith("columns["))
@@ -2945,7 +2959,10 @@ def get_item(
if count:
return items_nb
- # print(str(items.values("id").query))
+ print(2, datetime.datetime.now() - n)
+ n = datetime.datetime.now()
+
+ print(str(items.values("id").query))
if data_type == "json-stats":
stats_sum_variable = request_items.get("stats_sum_variable", None)