summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ishtar_common/admin.py4
-rw-r--r--ishtar_common/views_item.py24
-rw-r--r--ishtar_common/wizards.py2
3 files changed, 27 insertions, 3 deletions
diff --git a/ishtar_common/admin.py b/ishtar_common/admin.py
index daee5d521..bb8daa372 100644
--- a/ishtar_common/admin.py
+++ b/ishtar_common/admin.py
@@ -2338,10 +2338,10 @@ class ApiKeyMatchAdmin(admin.ModelAdmin):
"source",
"search_model",
"associated_type",
- "distant_slug",
- "distant_label",
"local_slug",
"local_label",
+ "distant_slug",
+ "distant_label",
"do_not_match",
]
list_filter = ["source", "do_not_match"]
diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py
index 468312046..242e57b2a 100644
--- a/ishtar_common/views_item.py
+++ b/ishtar_common/views_item.py
@@ -2408,11 +2408,35 @@ def get_distant_item(
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
+ if "search_vector" in params and params["search_vector"]:
+ search_vector = params["search_vector"][0]
+ match = RE_FACET.search(search_vector)
+ final_search_vector = ""
+ while match:
+ key, value, __ = match.groups()
+ q = models_rest.ApiKeyMatch.objects.filter(
+ source=src,
+ search_model__model__iexact=model,
+ search_keys__contains=[key],
+ local_label=value
+ )
+ up, down = match.span()
+ if q.count():
+ api_key = q.all()[0]
+ final_search_vector += search_vector[0:up]
+ final_search_vector += f'{key}="{api_key.distant_label}" '
+ else:
+ final_search_vector += search_vector[0:down] + " "
+ search_vector = search_vector[down:]
+ match = RE_FACET.search(search_vector)
+ final_search_vector += search_vector
+ params["search_vector"] = [final_search_vector]
try:
response = requests.get(
url,
diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py
index 80054ca0c..5f3606a5e 100644
--- a/ishtar_common/wizards.py
+++ b/ishtar_common/wizards.py
@@ -121,7 +121,7 @@ class IshtarWizard(NamedUrlWizardView):
)
if (
self.model
- and hasattr(form, "field")
+ and hasattr(form, "fields")
and "pk" in form.fields
and self.request.session.get("EXTERNAL_SOURCES", {})
):