|
@@ -47,6 +47,20 @@ def is_healthy():
|
|
|
|
|
|
@bp.route('/events/summary')
|
|
|
def events_summary():
|
|
|
+ has_clip = request.args.get('has_clip', type=int)
|
|
|
+ has_snapshot = request.args.get('has_snapshot', type=int)
|
|
|
+
|
|
|
+ clauses = []
|
|
|
+
|
|
|
+ if not has_clip is None:
|
|
|
+ clauses.append((Event.has_clip == has_clip))
|
|
|
+
|
|
|
+ if not has_snapshot is None:
|
|
|
+ clauses.append((Event.has_snapshot == has_snapshot))
|
|
|
+
|
|
|
+ if len(clauses) == 0:
|
|
|
+ clauses.append((1 == 1))
|
|
|
+
|
|
|
groups = (
|
|
|
Event
|
|
|
.select(
|
|
@@ -56,6 +70,7 @@ def events_summary():
|
|
|
Event.zones,
|
|
|
fn.COUNT(Event.id).alias('count')
|
|
|
)
|
|
|
+ .where(reduce(operator.and_, clauses))
|
|
|
.group_by(
|
|
|
Event.camera,
|
|
|
Event.label,
|