feat(judging): editable-after-submit scores + in-app video review modal#180
Merged
Merged
Conversation
…w modal Two judging-flow tweaks from event prep: 1. Scores are no longer hard-locked on submit. Removed the isSubmitted -> 409 guard on upsertScore + saveScores so a judge can revise and re-save their own scores anytime; the submitted ballot still counts and the leaderboard reflects the latest values (leaderboard already counts submitted ballots only, on submit — unchanged). Client: score inputs always editable, SAVE BATCH always available, the red 'LOCKED' banner becomes a calm 'submitted, you can still revise + save' note. claimBatch stays gated after submit (not part of this). 2. Clicking VIDEO opens an in-app review modal (ProjectReviewModal, reusing demoUtils embed + the Dialog) with an 'open in new window' button, instead of spawning a tab. GITHUB stays a new-tab link (X-Frame-Options blocks framing). Tests: controller lock tests flipped to assert edit-after-submit succeeds; sim journey updated likewise; SIMULATION_REPORT regenerated. Server 397 green; client build + lint clean; stadium-tester 4/4 (video modal opens; edit+re-save after submit works).
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
sacha-l
added a commit
that referenced
this pull request
Jun 15, 2026
Resolved SubmitProjectModal conflict: re-applied the verifying-check-in button label + reassurance line onto #178's restructured submit form (main form footer, not the terms modal). Verified auto-merged api.ts, program.controller, program.routes, submission.controller + test keep BOTH the luma gate and #180's editable-scores logic. 428 server tests + client build + lint pass.
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.
Two judging-flow tweaks for the Bitrefill event.
1. Scores stay editable (removed the hard lock)
Previously, SUBMIT MY SCORES froze a judge's ballot —
saveScores/upsertScore409'd and inputs were disabled. Per request, a judge can now revise and re-save their own scores at any time, including after submitting.isSubmitted → 409guard onupsertScore+saveScores(keptclaimBatch's — claiming new batches post-submit isn't part of this;submitBallotstays idempotent).submission_scores, the leaderboard reflects a judge's latest values automatically (so "save updates the global scores" holds for submitted judges; drafts stay private).2. In-app VIDEO review modal
Clicking VIDEO now opens an in-app modal (
ProjectReviewModal, reusingdemoUtils.getEmbedUrl+ the RadixDialog) with the demo embedded + an "open in new window" button — no more tab pile-up. GITHUB stays a new-tab link (GitHub refuses iframe embedding viaX-Frame-Options).Test plan
cd server && npm test→ 397 passed (controller lock tests flipped to assert edit-after-submit succeeds; sim journey updated;SIMULATION_REPORT.mdregenerated).cd client && npm run build && npm run lint→ clean.stadium-tester(mock + //Alice) → 4/4: VIDEO opens the in-app modal with "open in new window"; after SUBMIT, inputs stay enabled and a re-save succeeds; no console errors.Out of scope
🤖 Generated with Claude Code