|
|
|
@ -9,20 +9,29 @@ client = initialise_opensearch()
|
|
|
|
|
|
|
|
|
|
class Drilldown(LoginRequiredMixin, View):
|
|
|
|
|
template_name = "ui/drilldown.html"
|
|
|
|
|
plan_name = "drilldown"
|
|
|
|
|
|
|
|
|
|
def get(self, request):
|
|
|
|
|
if not request.user.has_plan("drilldown"):
|
|
|
|
|
if not request.user.has_plan(self.plan_name):
|
|
|
|
|
return render(request, "denied.html")
|
|
|
|
|
return render(request, self.template_name)
|
|
|
|
|
|
|
|
|
|
def post(self, request):
|
|
|
|
|
if not request.user.has_plan("drilldown"):
|
|
|
|
|
print("POST")
|
|
|
|
|
if not request.user.has_plan(self.plan_name):
|
|
|
|
|
return render(request, "denied.html")
|
|
|
|
|
if "query" in request.POST:
|
|
|
|
|
query = request.POST["query"]
|
|
|
|
|
results = run_main_query(client, query)
|
|
|
|
|
print("RESULTS", results)
|
|
|
|
|
context = {"query": query}
|
|
|
|
|
results_parsed = []
|
|
|
|
|
if "hits" in results.keys():
|
|
|
|
|
print("hits in results")
|
|
|
|
|
if "hits" in results["hits"]:
|
|
|
|
|
print("hits in hits")
|
|
|
|
|
for item in results["hits"]["hits"]:
|
|
|
|
|
print("ITER", item)
|
|
|
|
|
results_parsed.append(item["_source"])
|
|
|
|
|
context = {"query": query, "results": results_parsed}
|
|
|
|
|
print("CONTEXT", context)
|
|
|
|
|
return render(request, self.template_name, context)
|
|
|
|
|
return render(request, self.template_name)
|
|
|
|
|