Trinitas Volunteers

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_campaigns row whose scope starts with service:<date> or the enclosing quarter.
  • Ad-hoc admin actions. Buttons for:
    • Resend weekly reminder — queues a fresh ad_hoc campaign (scope service:<date>:ad_hoc:<timestamp>) so Mailchimp fires the reminder again without clobbering the original.
    • Unlock cutoff — toggle services.cutoff_overridden so 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.

Who can use it

Admin only. The usual requireAdmin guard redirects non-admins to /login.