Add standby on-call roster with weekly rotation and day overrides
Summary
- Add a new Standby section above Top Priorities showing who is on duty today (name + phone)
- Weekends automatically default to Armin; weekdays rotate weekly among Elrich, Dieter, Kieran, Juan
- Full override system: pick someone for today, or for the rest of the week (Mon-Fri)
- Controls hidden from main board for a cleaner newspaper layout; accessible via a new
☎ Standby button in the toolbar - Standby schedule shared across viewers via new
standby_schedulesingleton Postgres table (migration 0003) - Auto-saves on edit when signed in; respects read-only mode for non-editors
Changes
-
migrations/alembic/versions/2026-07-22_0003_standby_schedule.py— new singleton table -
app/db.py—get_standby()/upsert_standby()query helpers -
app/web.py—GET /api/standby(public) +PUT /api/standby(editor-only) -
static/index.html— standby roster, modal UI, resolution logic, sync handlers
Test Notes
Tested on localhost with simulated authenticated session:
- Week rotation picks correctly resolve to the selected person
- Day overrides take precedence
- Weekend dates always show Armin automatically
- Main board is clean (no controls); modal pops up on toolbar button click
- Round-trip works: main board updates instantly after picking in modal