diff options
Diffstat (limited to 'ishtar_common/views_item.py')
-rw-r--r-- | ishtar_common/views_item.py | 46 |
1 files changed, 25 insertions, 21 deletions
diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py index 242e57b2a..88f20020b 100644 --- a/ishtar_common/views_item.py +++ b/ishtar_common/views_item.py @@ -1886,7 +1886,7 @@ def get_item( my_base_request, my_relative_session_names, ) - elif func_name and request: + elif func_name and request and hasattr(request, "session"): request.session[func_name] = dct for k in request_keys: @@ -2394,26 +2394,7 @@ def get_item( return func -def get_distant_item( - request, - model, - external_source_id, - data_type=None - ): - # TODO: check permissions - try: - src = models_rest.ApiExternalSource.objects.get( - pk=external_source_id) - except (models_rest.ApiExternalSource.DoesNotExist, ValueError): - return HttpResponse("{}", content_type="text/plain") - url = src.url - url += reverse(f"api-search-{model}") - - params = {k: v for k, v in dict(request.GET).items() if not k.startswith("columns")} - params["submited"] = 1 - params["data_type"] = "json" - if data_type: - params["data_type"] = data_type +def adapt_distant_search(params, src, model): if "search_vector" in params and params["search_vector"]: search_vector = params["search_vector"][0] match = RE_FACET.search(search_vector) @@ -2437,6 +2418,29 @@ def get_distant_item( match = RE_FACET.search(search_vector) final_search_vector += search_vector params["search_vector"] = [final_search_vector] + + +def get_distant_item( + request, + model, + external_source_id, + data_type=None + ): + # TODO: check permissions + try: + src = models_rest.ApiExternalSource.objects.get( + pk=external_source_id) + except (models_rest.ApiExternalSource.DoesNotExist, ValueError): + return HttpResponse("{}", content_type="text/plain") + url = src.url + url += reverse(f"api-search-{model}") + + params = {k: v for k, v in dict(request.GET).items() if not k.startswith("columns")} + params["submited"] = 1 + params["data_type"] = "json" + if data_type: + params["data_type"] = data_type + adapt_distant_search(params, src, model) try: response = requests.get( url, |