Skip to content

Cross-event training attendees index + shared registrant roster partial - #2101

Open
maebeale wants to merge 6 commits into
mainfrom
maebeale/registrants-table-partial
Open

Cross-event training attendees index + shared registrant roster partial#2101
maebeale wants to merge 6 commits into
mainfrom
maebeale/registrants-table-partial

Conversation

@maebeale

@maebeale maebeale commented Aug 5, 2026

Copy link
Copy Markdown
Collaborator

🤖 suggested review level: 5 Inspect 🔬 new cross-event index + charts, two new aggregation services, extraction of the Background roster AND charts into shared partials, new columns/filters, links from two report pages

What

  • Extract the Background roster into events/_registrant_roster and its charts into events/_registrant_breakdowns — both shared, driven by a data object + context. Background renders identically.
  • New admin index GET /events/training_attendees: everyone who's attended a facilitator training, deduped to one row. Lazy Turbo-frame; the search boxes refilter names + charts together.
  • Roster columns: Trainings-attended (expand chevron + all/last toggle, links to registration edits); Program status + Organization aggregated/deduped across a person's trainings (org from registration-linked orgs); Affiliation status (Active/Pending/Inactive); scholarship/CE link to the most-recent training's record.
  • Charts: all Background breakdowns (sectors, age groups, locations, program status, life experiences, settings, organizations, scholarship/CE pies), aggregated cross-event by the new TrainingAttendeesBreakdowns, profile-sourced. Each breakdown row drills in as an index filter.
  • Filters: name/email, training, year, sector, affiliation status, state, county (dropdowns) + age group, country, school district, life experience, setting, program status, organization, scholarship, CE (via breakdown drill-in).
  • Reached from the participation report (button) and statistics hub (trainings figure). Event-registration icon on the button.

Services

  • TrainingAttendeesRoster — per-person roster lookup maps (cross-event EventDashboard counterpart).
  • TrainingAttendeesBreakdowns — aggregate chart datasets over the filtered set.

Seeds

Amy (4) & Aisha (3) have multiple attended trainings so the multi-event UI shows in dev.

Notes for review

  • Background stays static (no search boxes there); only the index filters.
  • Breakdown drill-in filters (age group, country, etc.) have no visible dropdown yet — they set a URL param and "Clear filters" resets. Can add active-filter chips later.
  • Person name still links to the profile on the index (only the whole-row click was removed).

Tests

TrainingAttendeesRoster + TrainingAttendeesBreakdowns service specs; training_attendees request spec (auth, filters, exclusions, columns, charts render, drill-in filter, links); page_bg_class; updated Background/statistics assertions.

Screenshots to add.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings August 5, 2026 13:21

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 wasn't able to review any files in this pull request.

…roster

Extract the Background page's inline registrant roster into a shared
events/_registrant_roster partial, then reuse it for a new admin
training_attendees index — every person who has attended a facilitator
training, deduped to one row, with an added event column (per-row expand
chevron + page-level all/last toggle). Scholarship/CE link to the person's
most-recent training record; each event links to its registration edit page.
Reached from the participation report and the statistics hub.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings August 5, 2026 13:49

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 changed the title Shared registrant roster partial + cross-event training attendees index Cross-event training attendees index + shared registrant roster partial Aug 5, 2026
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings August 5, 2026 15:31

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.

…lti-training attendance

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings August 5, 2026 15:38

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.

…tion status

Rename the roster's Status column to Program status. On the cross-event index,
source the Organization column from the orgs linked on the person's training
registrations (uniqued across trainings) rather than their affiliations. Add an
index-only Affiliation status column (Active/Pending/Inactive, deduped) plus a
matching filter.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings August 5, 2026 15:43

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 6, 2026 15:56
Extract the Background charts into a shared events/_registrant_breakdowns
partial (driven by data + event/index context) and add a cross-event
TrainingAttendeesBreakdowns aggregator so the same charts render on the
index over the filtered attendee population. The search boxes now refilter
names and charts together, and each breakdown row drills in as an index
filter (age group, country, district, life experience, setting, program
status, organization, scholarship, CE). Background stays static.

Fix: derive the aggregator's person ids with includes stripped — the roster's
scoped age-range eager-load would otherwise turn .ids into a filtering JOIN.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings August 6, 2026 16: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.

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