Skip to content

Add auto-detected admin checklist to the event dashboard - #2126

Open
maebeale wants to merge 9 commits into
mainfrom
maebeale/event-dashboard-todo-section
Open

Add auto-detected admin checklist to the event dashboard#2126
maebeale wants to merge 9 commits into
mainfrom
maebeale/event-dashboard-todo-section

Conversation

@maebeale

@maebeale maebeale commented Aug 9, 2026

Copy link
Copy Markdown
Collaborator

🤖 suggested review level: 5 Inspect 🔬 new EventChecklist service + ~30 EventDashboard detection methods + a new roster filter, all feeding a new dashboard panel

What is the goal of this PR and why is this important?

  • Admins had no at-a-glance view of the outstanding work to run an event — they inferred it from roster filters, the scholarships page, bulk payments, etc.
  • Adds an Event checklist panel under the dashboard's headcount cards: the whole lifecycle of to-dos (Set up → Before the event → During & after), auto-detected from system state (nothing is manually checkable).
  • Outstanding work groups by phase at the top; satisfied / not-applicable items collapse into a "Done & not applicable" section. Each item expands to show exactly who it's for.
  • Part of the effort to eventually remove the dashboard's second (headcount) row by relocating drill-ins.

How did you approach the change?

  • New EventChecklist service turns state into an ordered list of Items (:todo / :done / :not_relevant), each with a count, the affected registrants, and a pre-filtered drill-in. Registrant tasks → bulk-reminder flow; admin tasks → roster / Scholarships / bulk-payments / forms / reports.
  • All counts + registrant lists come from new memoized EventDashboard methods (reusing its existing per-registrant maps). Not-relevant items skip their queries, so pre-event pages never compute post-event work (e.g. certificate readiness).
  • Drill-in plumbing added: org_status=none roster filter (registrations with no org linked at all) and an event_id filter on the forms index.
  • Best-effort / weak signals (flagged in the UI): event-type marking, scholarship funder (no grant is a legit org subsidy), CE-hours reconciliation, callouts "reviewed" (detected via edits from defaults).
  • Post-event survey is a greyed, non-clickable TBD placeholder (feature not built) with a code comment to reconcile later.
  • Free events hide scholarship items; non-CE events hide CE items; during/after items appear only once the event has started/ended.

Anything else to add?

Copilot AI lite review requested due to automatic review settings August 9, 2026 14:41

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@maebeale
maebeale force-pushed the maebeale/event-dashboard-todo-section branch from c4c4f11 to ac59eeb Compare August 9, 2026 14:55
Copilot AI review requested due to automatic review settings August 9, 2026 14:55

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Copilot AI review requested due to automatic review settings August 9, 2026 15:59

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Copilot AI review requested due to automatic review settings August 9, 2026 16:01

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Copilot AI review requested due to automatic review settings August 9, 2026 16:26

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@maebeale
maebeale marked this pull request as ready for review August 9, 2026 20:28
Copilot AI review requested due to automatic review settings August 9, 2026 20:29

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Copilot AI review requested due to automatic review settings August 9, 2026 20:30

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Copilot AI review requested due to automatic review settings August 11, 2026 07:12
@maebeale
maebeale force-pushed the maebeale/event-dashboard-todo-section branch from d994d1a to 2f702f7 Compare August 11, 2026 07:12

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Copilot AI review requested due to automatic review settings August 11, 2026 15:01

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

S Mae Beale and others added 9 commits August 12, 2026 11:03
Admins had no at-a-glance view of the outstanding work to run an event; they
had to infer it from roster filters, the scholarships page, bulk payments, etc.
This adds an "Event checklist" panel under the headcount cards that derives the
whole lifecycle of to-dos (set up -> before the event -> during & after) purely
from system state — nothing is manually checkable. Outstanding work groups by
phase at the top; satisfied / not-applicable items collapse below. Registrant
tasks link to the bulk-reminder flow pre-filtered; admin tasks link to the
roster / Scholarships / bulk-payments / forms / reports pages pre-filtered.

Also adds the drill-in plumbing the checklist needs: an org_status=none roster
filter (registrations with no organization linked) and an event_id filter on the
forms index.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The "Allocate bulk payments" row now expands to show who submitted each bulk
payment (name + payer organization) and how much of it is still unapplied, so an
admin can see the money's source without leaving the dashboard.

Registrant-facing checklist items are retitled with a "Remind" prefix and all
route to the bulk-reminder flow pre-filtered by criteria (payment/CE/scholarship
status); the scholarship-agreement reminder, which has no semantic filter,
recreates its recipient selection via the reminder page's name filter.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Retitle the registrant-facing checklist items to "Send reminder: <thing>" and
shorten their button to "Send" so the action reads clearly without doubling.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Detected by the presence of any event_staffs; links to the event staff page so
an admin can add the roster.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Correct the copy — CE hours are registrant-submitted — and link the row to the
participation report rather than the roster.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Left over from resolving the organization_status rebase conflict.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The Events IA refactor renamed statistics_events_path to reports_events_path.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Counts active registrants not yet set up in every onboarding system
(EventRegistration::CHECKLIST_STEPS) and links to the event onboarding page.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Counts active registrants with no portal account yet and links to the reminders
flow's bulk invite mode (mode=invite), which #2168 added.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@maebeale
maebeale force-pushed the maebeale/event-dashboard-todo-section branch from d2c3c93 to 5bfa0a3 Compare August 12, 2026 15:07
Copilot AI review requested due to automatic review settings August 12, 2026 15:07

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants