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