Single-service view
Reassign, re-send, drill-in for one Sunday.
/admin/service/<date> is the admin drill-in for a single Sunday. It pulls together everything tied to that one service.
What’s on the page
- Header. Formatted date; badges showing whether the service is skipped or whether the cutoff has been manually overridden; a summary of any slot-count overrides for that Sunday; the free-form notes.
- Assignments table. One row per
(role, slot_index). Each row has an inline reassign dropdown that POSTs to/api/admin/schedule/cell— the same endpoint the quarter builder uses — so eligibility, availability, and group-hard checks behave identically here. - Activity timeline. Coverage requests, swap proposals, and audit events that touched this service.
- Related email campaigns. Any
email_campaignsrow whosescopestarts withservice:<date>or the enclosing quarter. - Ad-hoc admin actions. Buttons for:
- Resend weekly reminder — queues a fresh
ad_hoccampaign (scopeservice:<date>:ad_hoc:<timestamp>) so Mailchimp fires the reminder again without clobbering the original. - Unlock cutoff — toggle
services.cutoff_overriddenso volunteers can still swap or request coverage after the Friday-10am cron has fired. - Skip / unskip — toggle
services.is_skipped. Skipped services are excluded from schedule generation and the weekly reminder. - Export CSV — download a CSV of the day’s assignments.
- Resend weekly reminder — queues a fresh
Who can use it
Admin only. The usual requireAdmin guard redirects non-admins to /login.
Related
- Building a quarter for the workflow this feeds into.
- The Outbox to see the actual email campaigns.