Update filtering logic

This commit is contained in:
Nicolas Mowen 2024-06-11 07:59:30 -06:00
parent b5459bd9bc
commit 3b523b37da
2 changed files with 17 additions and 0 deletions

View File

@ -111,6 +111,7 @@ def review_summary():
cameras = request.args.get("cameras", "all")
labels = request.args.get("labels", "all")
zones = request.args.get("zones", "all")
clauses = [(ReviewSegment.start_time > day_ago)]
@ -133,6 +134,20 @@ def review_summary():
label_clause = reduce(operator.or_, label_clauses)
clauses.append((label_clause))
if zones != "all":
# use matching so segments with multiple zones
# still match on a search where any zone matches
zone_clauses = []
filtered_zones = zones.split(",")
for zone in filtered_zones:
zone_clauses.append(
(ReviewSegment.data["zones"].cast("text") % f'*"{zone}"*')
)
zone_clause = reduce(operator.or_, zone_clauses)
clauses.append((zone_clause))
last_24 = (
ReviewSegment.select(
fn.SUM(

View File

@ -136,6 +136,7 @@ export default function Events() {
const params = {
cameras: reviewSearchParams["cameras"],
labels: reviewSearchParams["labels"],
zones: reviewSearchParams["zones"],
reviewed: 1,
before: reviewSearchParams["before"] || last24Hours.before,
after: reviewSearchParams["after"] || last24Hours.after,
@ -221,6 +222,7 @@ export default function Events() {
timezone: timezone,
cameras: reviewSearchParams["cameras"] ?? null,
labels: reviewSearchParams["labels"] ?? null,
zones: reviewSearchParams["zones"] ?? null,
},
],
{