Skip to content

Commit

Permalink
streamline preview method, re #11117
Browse files Browse the repository at this point in the history
  • Loading branch information
apeters committed Jul 31, 2024
1 parent c420477 commit 0ff402c
Showing 1 changed file with 7 additions and 43 deletions.
50 changes: 7 additions & 43 deletions arches/app/etl_modules/bulk_edit_concept.py
Original file line number Diff line number Diff line change
Expand Up @@ -116,23 +116,6 @@ def get_graphs_node(self, request):
nodes = dictfetchall(cursor)
return {"success": True, "data": nodes}

def get_resourceids_from_search_url(self, search_url):
request = HttpRequest()
request.user = self.request.user
request.method = "GET"
request.GET["export"] = True
validate = URLValidator()
try:
validate(search_url)
except:
raise
params = parse_qs(urlsplit(search_url).query)
for k, v in params.items():
request.GET.__setitem__(k, v[0])
response = search_results(request)
results = json.loads(response.content)["results"]["hits"]["hits"]
return [result["_source"]["resourceinstanceid"] for result in results]

def get_preview_data(
self,
node_id,
Expand All @@ -149,12 +132,6 @@ def get_preview_data(
request.GET["tiles"] = True

if search_url:
validate = URLValidator()
try:
validate(search_url)
except:
raise

params = parse_qs(urlsplit(search_url).query)
for k, v in params.items():
request.GET.__setitem__(k, v[0])
Expand All @@ -169,17 +146,17 @@ def get_preview_data(
search_bool_agg = Bool()
search_bool_agg.must(search_query)

string_search_nested = Nested(path="tiles", query=search_query)
concept_search_nested = Nested(path="tiles", query=search_query)
inner_hits_query = {
"inner_hits": {
"_source": False,
"docvalue_fields": [f"tiles.data.{node_id}.keyword", "tiles.tileid"],
}
}
string_search_nested.dsl["nested"].update(inner_hits_query)
concept_search_nested.dsl["nested"].update(inner_hits_query)

search_bool_query = Bool()
search_bool_query.must(string_search_nested)
search_bool_query.must(concept_search_nested)

search_url_query["bool"]["must"].append(search_bool_query.dsl)

Expand Down Expand Up @@ -244,33 +221,20 @@ def get_preview_data(
return values[:preview_limit], number_of_tiles, number_of_resources

def preview(self, request):
resourceids = None
return_list = []
preview_limit = ETLModule.objects.get(pk=self.moduleid).config.get(
"previewLimit", 5
)

page_index = int(request.POST.get("currentPageIndex", 0))
page_index += 1
language_old = request.POST.get("conceptOldLang", None)
language_new = request.POST.get("conceptNewLang", None)
search_url = request.POST.get("search_url", None)
old_concept = request.POST.get("conceptOld", None)
new_concept = request.POST.get("conceptNew", None)
old_prefLabel = Value.objects.values_list("value", flat=True).get(
pk=old_concept, valuetype__valuetype="prefLabel"
)
new_prefLabel = Value.objects.values_list("value", flat=True).get(
pk=new_concept, valuetype__valuetype="prefLabel"
)

selected_node_info = request.POST.get("selectedNode", None)
if not selected_node_info:
return {}

nodeid = json.loads(selected_node_info)["node"]
node_datatype = Node.objects.get(pk=nodeid).datatype

search_url = request.POST.get("search_url", None)

try:
self.validate_inputs(request)
Expand All @@ -282,7 +246,9 @@ def preview(self, request):

if search_url:
try:
resourceids = self.get_resourceids_from_search_url(search_url)
validate = URLValidator()
validate.max_length = 1000000
validate(search_url)
except ValidationError:
return {
"success": False,
Expand All @@ -291,8 +257,6 @@ def preview(self, request):
"message": _("Please, enter a valid search url"),
},
}
if resourceids:
resourceids = tuple(resourceids)

try:
return_list, number_of_tiles, number_of_resources = self.get_preview_data(
Expand Down

0 comments on commit 0ff402c

Please sign in to comment.