feat(analytics): list selectable statistics periods #82
Labels
No labels
blocked
bug
enhancement
high-priority
low-priority
needs-info
needs-triage
ready-for-agent
ready-for-human
referenced
research
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
gabogg/hikcentral#82
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Route
GET /api/statistics/periods?granularity=day|week|month&limit=…Returns the closed periods a presenter can pick, newest first, for the deck's period selector.
Response sketch
Notes
Context
Part of the statistics deck redesign, draft RFC in #80 (
docs/architecture/rfc-statistics-deck-display-model.md; mockup linked there). Period selection was decided in #81 (closed): a period is identified bygranularity(day/week/month) and its first business day; see the glossary terms Complete Period and Partial Period. A year period is out of scope.Shared constraints (all statistics-deck routes)
daily_reset_timeboundaries,app/facility_time.py); an in-progress cycle is never returned._COUNTED_CAMERA_JOIN/_COUNTED_CAMERA_FILTER); quarantined events never do.require_auth). Deck routes live in a separate/api/statistics/router so admin-only/api/analytics/routes can't leak into the deck.analytics_service, SQL in repositories.Triage decisions (2026-09-24)
partialis true whencovered_days < business_days; the label shows it ("4 of 7 days").iso_week).Implemented by #89, merged into
masteras3541af5after two review passes (Standards + Spec). Non-blocking follow-ups are tracked in #96–#100. Closing; this unblocks #80.🤖 Generated with Claude Code