Skip to content

Portal presentations page invents a 'report to Stage B' instruction from queue-index arithmetic #182

Description

@pat-lewczuk

Found while fixing #114 (PR #174). #114 removed the kiosk's hard-coded queue position, invented
team-mates and always-zero deadline. This is the same defect class on a different screen and was left
out because it needs a product decision rather than a data lookup.

What happens

src/modules/judging/frontend/[orgSlug]/portal/presentations/page.tsx:159-163:

{t('judging.portal.presentations.logisticsCopy', 'Teams {start}–{end} please report to Stage B holding area.', {
  start: presenting ? presenting.presentation_order + 3 : '—',
  end:   presenting ? presenting.presentation_order + 7 : '—',
})}

The banner is styled as a Logistics Update in danger red, and the numbers in it are arithmetic on
the currently-presenting team's queue index. +3 and +7 are not derived from anything — not a
holding-area capacity, not a stage-B schedule, not a configured lead time. Participants are being
given a concrete instruction ("teams 14–18 report to Stage B") generated from an offset someone picked.

Nothing guarantees those positions exist (near the end of the queue it names teams that do not), and
nothing connects "Stage B holding area" to any configured venue.

Why it needs a decision, not just a fix

Three defensible outcomes, and the right one is an organiser's call:

  1. Make it real — let organisers configure a holding-area lead time (how many teams ahead to
    call) and a location string per competition, and render from that.
  2. Make it an announcement — delete the hard-coded banner and let organisers push this through
    the existing announcements mechanism, which already reaches the portal.
  3. Delete it — drop the banner entirely if nobody is actually running a Stage B.

Option 2 is probably the cheapest honest answer, since announcements already exist. Whichever is
chosen, the current behaviour — fabricated logistics presented as instruction — should not ship.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions