Add Event abbreviation and surface it in compact/event contexts#1995
Merged
Conversation
Adds an admin-set short code (e.g. "TOS205") to events and uses it wherever a full event title is too long or repeated across many events, falling back to the title when no abbreviation is set. - Event#abbreviation column + event-form field + policy param. - EventDecorator#compact_label => abbreviation or title; used on the revenue report's per-event rows and the dashboard/background header links (full title kept as a tooltip). - Org profile "Program status by event" chips: classify the org as of each event's start date and label the chip with the event's compact_label. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
maebeale
added a commit
that referenced
this pull request
Jul 15, 2026
New/Reinstate/Ongoing can only be determined relative to a specific event, so showing it as a global org attribute was misleading. Per-event program status is surfaced on the org profile in a separate PR (event abbreviations, #1995). - Drop the admin-only "Program" column from the org index. - Drop the now-orphaned Organization.program_statuses_by_id bulk classifier. - Drop the "Program status" block from the org edit form's Affiliations section. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
maebeale
commented
Jul 15, 2026
| def compact_label | ||
| object.abbreviation.presence || object.title | ||
| end | ||
|
|
Collaborator
Author
There was a problem hiding this comment.
🤖 From Claude: Single source of truth for the abbreviation-or-title fallback. Callers pair it with title="<full title>" so an unfamiliar abbreviation is never ambiguous.
maebeale
commented
Jul 15, 2026
| # already-loaded affiliations so a profile can classify many events without an | ||
| # N+1. No facilitator affiliation starting before the date => :new; an earlier | ||
| # one still active on the date => :ongoing; all earlier ones ended => :reinstated. | ||
| def facilitator_status_as_of(date) |
Collaborator
Author
There was a problem hiding this comment.
🤖 From Claude: Computed in-memory over the already-loaded affiliations (not the DB-backed Organization#facilitator_status_on) so classifying a page of ~9 events on the profile does not fire 2 queries per event.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🤖 suggested review level: 3 Read 📖 small additive change: a new column + a display helper applied in a few compact spots, with a fallback to the full title
What is the goal of this PR and why is this important?
TOS205) and uses it where a compact label reads better, falling back to the full title when none is set.How did you approach the change?
Event#abbreviation(string) + a form field + policy param.EventDecorator#compact_label→abbreviation.presence || title. Applied to:title=tooltip).compact_labeland classify the org as of that event'sstart_date.Anything else to add?