Implement score filtering on Frigate+ Page (#10968)

* Fix portrait layout disappearing

* Refactor sliders

* Reuse camera filter

* Reuse label filter content

* Implement score slider including keyboard input

* Implement ability to sort frigate plus submissions
This commit is contained in:
Nicolas Mowen
2024-04-14 10:06:11 -06:00
committed by GitHub
parent b65656fa87
commit a3e2171675
9 changed files with 384 additions and 205 deletions

View File

@@ -77,6 +77,8 @@ def events():
min_length = request.args.get("min_length", type=float)
max_length = request.args.get("max_length", type=float)
sort = request.args.get("sort", type=str)
clauses = []
selected_columns = [
@@ -219,10 +221,22 @@ def events():
if len(clauses) == 0:
clauses.append((True))
if sort:
if sort == "score_asc":
order_by = Event.data["score"].asc()
elif sort == "score_desc":
order_by = Event.data["score"].desc()
elif sort == "date_asc":
Event.start_time.asc()
elif sort == "date_desc":
Event.start_time.desc()
else:
order_by = Event.start_time.desc()
events = (
Event.select(*selected_columns)
.where(reduce(operator.and_, clauses))
.order_by(Event.start_time.desc())
.order_by(order_by)
.limit(limit)
.dicts()
.iterator()