Skip to content

Consolidate CE + art supplies callouts onto rows; drop legacy Event columns#1996

Merged
maebeale merged 4 commits into
mainfrom
maebeale/hyderabad-v2
Jul 15, 2026
Merged

Consolidate CE + art supplies callouts onto rows; drop legacy Event columns#1996
maebeale merged 4 commits into
mainfrom
maebeale/hyderabad-v2

Conversation

@maebeale

@maebeale maebeale commented Jul 15, 2026

Copy link
Copy Markdown
Collaborator

🤖 suggested review level: 5 Inspect 🔬 drops two Event columns (migrations), deletes two standalone pages, renames a built-in, and reworks the callout system

Salvages the still-relevant parts of #1984 (which had gone stale — main since merged the de-magic rename #1977 and materialized per-resource copy #1990). Superseded rendering changes were dropped; this keeps the structural cleanup, re-applied on top of current main.

FAQ + scholarship onto the shared _callout_page

  • Both pages hand-rolled the eyebrow + branded-header chrome; now they render through events/callouts/_callout_page.
  • Scholarship now picks up @builtin_intro (the materialized row's "Callout page text"), which its bespoke markup silently dropped.

Delete the orphaned events#ce_hours / events#details pages

  • Superseded by the callout pages; nothing linked to them except the removed event_details_card.

event_detailsart_supplies + drop legacy columns

  • art_supplies is now a content callout — renders on the generic callout page like handouts/FAQ, no dedicated action/view. Default title "Art supplies & what to bring".
  • Drop the legacy Event columns event_details(_label) and ce_hours_details(_label) (two reversible migrations, no backfill, per the original product call). The heading + copy live on the row now; the CE heading reads from the row via Event#ce_hours_label (CE card, CE page, CE-deadlines mailer).
  • Remove the dead editor branch, the event_details_card builder, and the unused _builtin_callout_card partial.
  • Dev seeds now materialize the built-ins on every event and move the demo CE / art-supplies copy onto their rows.

Drive-by fix (unblocks CI)

  • events_spec "sample_ticket ?options=all" had been red since Guard payment/scholarship/CE ticket callouts against missing event config #1992 added config_gap guards without exempting the admin preview, so the "every option" preview could no longer show the scholarship / CE cards. The preview illustrates a hypothetical registrant's options, so it now bypasses config_gap for those two cards; a real ticket still applies it.

…yout

Removes the duplicated back-eyebrow + branded-header chrome both pages
hand-rolled. Scholarship now renders through the shared layout, so it picks
up @builtin_intro (the materialized row's 'Callout page text'), which the
old bespoke markup silently dropped.

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

…lumns

Finishes migrating the CE and art-supplies built-ins fully onto their
materialized callout rows, and deletes the two now-orphaned standalone pages.

- Rename the event_details built-in to art_supplies and make it a *content*
  callout, so it renders on the generic callout page (like handouts/FAQ) with
  no dedicated action/view. Default title 'Art supplies & what to bring'.
- Drop the legacy Event columns event_details(_label) and ce_hours_details(_label)
  (two reversible migrations, no backfill). The heading + copy live on the row now;
  the CE heading reads from the row via Event#ce_hours_label (used by the CE card,
  the CE page, and the CE-deadlines mailer).
- Delete the orphaned events#ce_hours / events#details pages, routes, controller
  actions, policy rules, and their specs — superseded by the callout pages.
- Remove the dead editor branch, the event_details_card builder, and the now-unused
  _builtin_callout_card partial.
- Seed the built-in callouts on every dev event and move the demo CE / art-supplies
  copy onto their rows.

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

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.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@maebeale maebeale changed the title Salvage #1984: consolidate CE/art-supplies callouts, drop legacy Event columns Consolidate CE + art supplies callouts onto rows; drop legacy Event columns Jul 15, 2026
Copilot AI review requested due to automatic review settings July 15, 2026 05: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 marked this pull request as ready for review July 15, 2026 05:50
…f event config

#1992 added config_gap guards to the callout card builders but didn't exempt the
admin sample-ticket preview, so its 'every option turned on' view could no longer
show the scholarship / CE cards on an event lacking a scholarship form or CE hours
(and events_spec's sample_ticket ?options=all has failed since). The preview
illustrates a hypothetical registrant's options, so it now bypasses config_gap for
those two cards while a real ticket still applies it.

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

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 merged commit 4234754 into main Jul 15, 2026
3 checks passed
@maebeale maebeale deleted the maebeale/hyderabad-v2 branch July 15, 2026 06:09
maebeale added a commit that referenced this pull request Jul 15, 2026
…1997)

Salvaged from the closed #1984 (superseded by #1996), ported to current
builtin_key vocabulary. #1996 landed the structural cleanup but left these
two behavioral assertions uncovered at their respective layers:

- Model: art_supplies is a *content* built-in (behavioral_builtin? == false),
  unlike a behavioral built-in like certificate.
- Request: the CE and scholarship pages render the intro copy from their
  materialized callout row's description (FAQ already covered; handouts has
  no description intro).

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
maebeale added a commit that referenced this pull request Jul 15, 2026
… specs

- Remove EventRegistration#checked_in? — a stub with no backing column and
  no history of ever being implemented; deletes the unreachable "Checked in"
  badge branch on the ticket too. Day 1/Day N attendance already covers this
  via completed_day_N.
- Fix a real double-query on every ticket render: registration_ticket_callouts
  was queried once in the view and again in BuiltinCalloutCards#materialized?,
  plus a resources.any? query per visible callout. Preload
  event: { registration_ticket_callouts: :resources } and read the loaded
  association in Ruby instead of re-scoping it.
- Move HANDOUT_RESOURCE_TITLES from Events::CalloutsController into
  BuiltinCallouts, which actually owns the callout catalog; the controller
  had it backwards.
- Delete BuiltinCallouts.seedable_keys — dead code with no callers anywhere.
- Add request specs for CalloutsController's three previously-uncovered
  actions (certificate, update_ce_license, request_ce), and a spec pinning
  that the sample-ticket preview's config_gap bypass only applies to
  scholarship/CE (registrant-level), never payment/videoconference
  (event-level) — guards against a repeat of the #1992/#1996 regression.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
maebeale added a commit that referenced this pull request Jul 15, 2026
… specs (#1999)

- Remove EventRegistration#checked_in? — a stub with no backing column and
  no history of ever being implemented; deletes the unreachable "Checked in"
  badge branch on the ticket too. Day 1/Day N attendance already covers this
  via completed_day_N.
- Fix a real double-query on every ticket render: registration_ticket_callouts
  was queried once in the view and again in BuiltinCalloutCards#materialized?,
  plus a resources.any? query per visible callout. Preload
  event: { registration_ticket_callouts: :resources } and read the loaded
  association in Ruby instead of re-scoping it.
- Move HANDOUT_RESOURCE_TITLES from Events::CalloutsController into
  BuiltinCallouts, which actually owns the callout catalog; the controller
  had it backwards.
- Delete BuiltinCallouts.seedable_keys — dead code with no callers anywhere.
- Add request specs for CalloutsController's three previously-uncovered
  actions (certificate, update_ce_license, request_ce), and a spec pinning
  that the sample-ticket preview's config_gap bypass only applies to
  scholarship/CE (registrant-level), never payment/videoconference
  (event-level) — guards against a repeat of the #1992/#1996 regression.

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
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