Implement date picker
This commit is contained in:
@@ -152,6 +152,8 @@ def query_results(request, size=None):
|
||||
message = None
|
||||
message_class = None
|
||||
add_bool = []
|
||||
add_top = []
|
||||
sort = None
|
||||
if request.user.is_anonymous:
|
||||
sizes = settings.OPENSEARCH_MAIN_SIZES_ANON
|
||||
else:
|
||||
@@ -172,6 +174,40 @@ def query_results(request, size=None):
|
||||
if source != "all":
|
||||
add_bool.append({"src": source})
|
||||
|
||||
if "dates" in request.POST:
|
||||
dates = request.POST["dates"]
|
||||
spl = dates.split(" - ")
|
||||
if all(spl):
|
||||
spl = [f"{x.replace(' ', 'T')}Z" for x in spl]
|
||||
if not len(spl) == 2:
|
||||
message = "Invalid dates"
|
||||
message_class = "danger"
|
||||
return {"message": message, "class": message_class}
|
||||
from_ts, to_ts = spl
|
||||
range_query = {
|
||||
"range": {
|
||||
"ts": {
|
||||
"gt": from_ts,
|
||||
"lt": to_ts,
|
||||
}
|
||||
}
|
||||
}
|
||||
add_top.append(range_query)
|
||||
if "sorting" in request.POST:
|
||||
sorting = request.POST["sorting"]
|
||||
if sorting not in ("asc", "desc", "none"):
|
||||
message = "Invalid sort"
|
||||
message_class = "danger"
|
||||
return {"message": message, "class": message_class}
|
||||
if sorting in ("asc", "desc"):
|
||||
sort = [
|
||||
{
|
||||
"ts": {
|
||||
"order": sorting,
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
if "check-sentiment" in request.POST:
|
||||
if "sentiment" in request.POST:
|
||||
sentiment = request.POST["sentiment"]
|
||||
@@ -188,6 +224,11 @@ def query_results(request, size=None):
|
||||
if add_bool:
|
||||
for item in add_bool:
|
||||
search_query["query"]["bool"]["must"].append({"match": item})
|
||||
if add_top:
|
||||
for item in add_top:
|
||||
search_query["query"]["bool"]["must"].append(item)
|
||||
if sort:
|
||||
search_query["sort"] = sort
|
||||
results = run_main_query(
|
||||
client,
|
||||
request.user, # passed through run_main_query to filter_blacklisted
|
||||
@@ -280,12 +321,5 @@ def construct_query(query, size):
|
||||
]
|
||||
}
|
||||
},
|
||||
"sort": [
|
||||
{
|
||||
"ts": {
|
||||
"order": "desc",
|
||||
}
|
||||
}
|
||||
],
|
||||
}
|
||||
return query
|
||||
|
||||
Reference in New Issue
Block a user