Skip to content

Add Pay for Others submitters to the event bulk-reminder page#2006

Draft
maebeale wants to merge 1 commit into
mainfrom
maebeale/reminder-emails-bulk-payers
Draft

Add Pay for Others submitters to the event bulk-reminder page#2006
maebeale wants to merge 1 commit into
mainfrom
maebeale/reminder-emails-bulk-payers

Conversation

@maebeale

Copy link
Copy Markdown
Collaborator

🤖 suggested review level: 3 Read 📖 contained logic — new service + mailer + a section on the reminder page, no migrations or data transforms

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

  • Admins chase unpaid balances from the event Send bulk emails page, but the payer behind a Pay for Others submission was invisible there — nobody nudged them when attendees they said they'd cover never registered or were never paid for.
  • Surfaces those submitters in their own section so the admin can remind the payer in the same send.

How did you approach the change?

  • BulkPaymentReminderRecipients service picks the qualifying submitters: any attendee not connected to a registration, or a matched registration not paid in full. Reuses FormSubmissionDecorator#matched_attendees so "connected" means the same thing as the bulk-payments dashboard.
  • New "Pay for Others submitters" section at the bottom of the recipient list — separate table, own select-all, per-row not registered / unpaid chips, and a link to the payer's card on the bulk-payments dashboard (new tab).
  • Payers get a payer-appropriate email (EventMailer#event_bulk_payment_reminder) linking to their payment ticket, not the registrant "view your ticket" reminder. Shares the admin's custom subject/message; new event_bulk_payment_reminder notification kind so it lands in the payer's comms history.
  • Confirm interstitial lists both groups and previews both emails; the batch FYI now counts "recipients" and tags submitters.
  • Edge case: an event with qualifying submitters but no emailable registrants still shows the page, and the live preview falls back to a submitter sample.

Anything else to add?

  • Selection default: submitters are their own group with their own select-all and are pre-checked by default; registrant filters don't remove or re-check them (avoids stale state under the turbo-frame filter refresh). The confirm step lists exactly who will be emailed before sending.
  • Tests: service spec, mailer spec, and request specs covering listing/omitting, confirm, and sending (with, without, and only submitters).

Event admins chase unpaid balances from the bulk-reminder page, but the
payer behind a "Pay for Others" submission was invisible there — so nobody
nudged them when attendees they said they'd cover never registered or were
never paid for. Surface those submitters in their own section so the admin
can remind the payer in the same send.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 22, 2026 11:46

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