Combine homepage and search into one class

This commit is contained in:
Mark Veidemanis 2022-08-10 07:36:26 +01:00
parent 56f2c96b45
commit c1071f3d55
Signed by: m
GPG Key ID: 5ACFCEED46C0904F
3 changed files with 19 additions and 23 deletions

View File

@ -51,11 +51,7 @@ from core.views.manage.threshold.threshold import (
)
# Main tool pages
from core.views.ui.drilldown import ( # DrilldownTableView,
Drilldown,
DrilldownSearch,
ThresholdInfoModal,
)
from core.views.ui.drilldown import Drilldown, ThresholdInfoModal # DrilldownTableView,
from core.views.ui.insights import (
Insights,
InsightsChannels,
@ -85,9 +81,8 @@ urlpatterns = [
path("accounts/", include("django.contrib.auth.urls")),
path("accounts/signup/", Signup.as_view(), name="signup"),
##
path("ui/drilldown/", Drilldown.as_view(), name="drilldown"),
path("ui/drilldown/modal/", ThresholdInfoModal.as_view(), name="modal_drilldown"),
path("ui/drilldown/search/", DrilldownSearch.as_view(), name="search_drilldown"),
# path("drilldown/", Drilldown.as_view(), name="drilldown"),
path("modal/", ThresholdInfoModal.as_view(), name="modal_drilldown"),
##
path("ui/insights/", Insights.as_view(), name="insights"),
path("ui/insights/search/", InsightsSearch.as_view(), name="search_insights"),

View File

@ -66,7 +66,7 @@
}
</script>
<div>
<form method="POST" hx-post="{% url 'search_drilldown' %}"
<form method="POST" hx-post="{% url 'home' %}"
hx-trigger="change"
hx-target="#results"
hx-swap="innerHTML"
@ -78,7 +78,7 @@
<div class="field has-addons">
<div class="control is-expanded has-icons-left">
<input
hx-post="{% url 'search_drilldown' %}"
hx-post="{% url 'home' %}"
hx-trigger="keyup changed delay:200ms"
hx-target="#results"
hx-swap="innerHTML" id="query" name="query" class="input" type="text" placeholder="msg: science AND nick: BillNye AND channel: #science">
@ -91,7 +91,7 @@
<button
id="search"
class="button is-info is-fullwidth"
hx-post="{% url 'search_drilldown' %}"
hx-post="{% url 'home' %}"
hx-trigger="click"
hx-target="#results"
hx-swap="innerHTML">

View File

@ -1,8 +1,10 @@
import json
import urllib
from django.conf import settings
from django.http import HttpResponse, JsonResponse
from django.shortcuts import render
from django.urls import reverse
from django.views import View
from django_tables2 import SingleTableMixin
from rest_framework.parsers import FormParser
@ -49,8 +51,6 @@ class Drilldown(View):
plan_name = "drilldown"
def get(self, request):
# if not request.user.has_plan(self.plan_name):
# return render(request, "denied.html")
if request.user.is_anonymous:
sizes = settings.OPENSEARCH_MAIN_SIZES_ANON
else:
@ -60,16 +60,15 @@ class Drilldown(View):
}
return render(request, self.template_name, context)
class DrilldownSearch(View):
# parser_classes = [JSONParser]
template_name = "ui/drilldown/results.html"
plan_name = "drilldown"
def post(self, request):
# if not request.user.has_plan(self.plan_name):
# return HttpResponseForbidden()
template_name = "ui/drilldown/results.html"
data_args = request.POST.dict()
del data_args["csrfmiddlewaretoken"]
print("rep", repr(data_args["dates"]))
if data_args["dates"] == " - ":
del data_args["dates"]
url_params = urllib.parse.urlencode(data_args)
print("url_params", url_params)
context = query_results(request)
if "message" in context:
return render(request, self.template_name, context)
@ -86,7 +85,9 @@ class DrilldownSearch(View):
]
)
if context:
return render(request, self.template_name, context)
response = render(request, template_name, context)
response["HX-Push"] = reverse("home") + "?" + url_params
return response
else:
return HttpResponse("No results")