from django.contrib.auth.mixins import LoginRequiredMixin from django.shortcuts import render from django.views import View from core.lib.opensearch import initialise_opensearch, run_main_query 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(self.plan_name): return render(request, "denied.html") return render(request, self.template_name) def post(self, request): 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) 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)