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