Conversation
Contributor
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Scanned FilesNone |
Contributor
|
Visit the preview URL for this PR (updated for commit 2c36973): https://hacklytics2027--pr-366-cw7dnz0z.web.app (expires Fri, 04 Sep 2026 22:08:21 GMT) 🔥 via Firebase Hosting GitHub Action 🌎 Sign: c48ba34db61581e25fe2978355160b5eefe0e83f |
Club meetings were showing up as a mode of the hackathon check-in desk and as Attendees under the Hackathon sidebar. Move club attendees and pass scanning onto Portal, leave /scan as the edition badge desk, and stop describing the public events page as if it listed Hacklytics. Co-authored-by: Aamogh <aamoghS@users.noreply.github.com>
The form already stored rows on Digital Bloom's id, but staff saw 0 registered and the edition page bounced to a singleton /hacklytics funnel. Join against this hackathon id from Info, and show the interest count on the admin card while the event is announced. Co-authored-by: Aamogh <aamoghS@users.noreply.github.com>
Digital Bloom opens on Applications, which listed zero registrations while 34 people were already on the interest list. While the event is announced, that tab is the interest roster for this hackathon. Co-authored-by: Aamogh <aamoghS@users.noreply.github.com>
Prepare judging now offers Rebuild anyway after assign CONFLICT (force: true), matching the old /admin/setup control. Applications uses the parent edition status so the interest roster does not wait on a UUID getById cache miss, and the announced count no longer reads as nobody while the query is in flight. Co-authored-by: Aamogh <aamoghS@users.noreply.github.com>
Co-authored-by: Aamogh <aamoghS@users.noreply.github.com>
A CONFLICT from edition A that resolved after the selector moved to B used to paint A's refusal on B, and Rebuild anyway sent force: true for B. Prep results now apply only to the run and edition that started them, and force rebuilds that refused id. Co-authored-by: Aamogh <aamoghS@users.noreply.github.com>
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.
Problem
Opening Hacklytics: Digital Bloom from the admin Hackathons card showed Hackathon unavailable / Hackathon not found. Dashboard links used
encodeURIComponent(name), so the path wasHacklytics%3A%20Digital%20Bloom— that matches neither the stored name nor the slughacklytics-digital-bloom.Judging Setup also let staff create a second event even when the edition already existed on the hackathon side of the portal.
The sidebar mixed club and hackathon links in one list, so membership vs guest was not obvious.
Club meetings were still nested in the hackathon: Attendees (club check-ins) lived under the Hackathon sidebar, and the check-in desk at
/scanhad a Club Event toggle on the same page as badge scanning.The interest form wrote rows on Digital Bloom's id, but staff looking at that edition saw 0 registered and an empty Applications table.
Redirecting
/admin/setupto/admin/judgingalso dropped the only control that sentassignJudgesToProjectswithforce: trueafter a CONFLICT, so a completed queue slot could refuse a rebuild with no way to confirm.Changes
/admin/hackathons/hacklytics-digital-bloom), with a UUID fallback if the name has nothing sluggable.hackathon.getByIddecodes percent-encoded names (including a double-encode from Link) so old bookmarks still resolve./admin/setupredirects to/admin/judging, where Prepare judging syncs submissions and assigns queues. After a CONFLICT (live judging or completed slots), Rebuild anyway sendsforce: truefor the edition that refused — not whichever edition is selected if the organiser switched while the request was in flight./scan/club)./scanis the hackathon badge desk only./eventslists club meetings only and points Hacklytics at/hacklytics. The edition itinerary tab is labeled as weekend sessions, not club meetings.Verification
pnpm test— 706 passed.pnpm exec tsc --noEmitinsites/mainweb.announced,current_participants = 0,hackathon_interest = 34./eventsis club-only;/hacklyticsloads Digital Bloom. Admin Applications / Prepare judging need a staff session to click through.