Stop the practice round asking for a profile, and let the prompt be hidden - #393
Merged
Conversation
…idden The profile fields exist so a published result can name a student. The practice group is defined by never closing, so it is never graded and publishes nothing, which leaves it asking for fields it has no use for. Both ends waived it: the header and the press read the group they are about, and the backend guard now runs only for a group that has a closing instant. The prompt itself had no way out. A student who has decided not to compete saw it on every visit. It now carries a dismiss, stamped on the account so it outlives the browser. Hiding it settles what the page says and never what it allows: pressing enter on a graded round still explains what the entry wants. The area page told everyone finishing a run that new messages no longer count towards their result, which the practice run has none of. It gets its own pair of sentences that promise nothing. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
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.
The profile fields (username, graduation answer, email) exist so a published result can name a student. The practice group is defined by never closing, so it can never be graded and publishes nothing, which left it asking for fields it has no use for.
Both ends now read the group they are about:
entryBlockerFor(reader, group)waives the profile step for a group with no closing instant, and only that step: an entry still needs an account to belong to.EnsureReadyToEnterAsyncruns only when the group has a closing instant. Without this the frontend would open the entry dialog and the confirm would then be refused.headerBlocker(reader, groups)decides what the page header says, so a board holding only the practice round asks for an account and never for a profile.The prompt itself had no way out, so a student who has decided not to compete saw it on every visit. It now carries a dismiss, stamped on the account (
User.ProfilePromptDismissedAt, one nullable column) so it outlives the browser and reaches their other devices. Hiding it settles what the page says and never what it allows: pressing enter on a graded round still explains what the entry wants, andisProfileCompletedoes not read the flag. The signed-out banner carries no dismiss, since there is no account to keep the answer against.The area page told everyone finishing a run that new messages no longer count towards their result, a promise the practice round can never keep. It gets its own pair of sentences that say the run is over and promise nothing.
Copy in all three locales: the two practice sentences, the dismiss label and its failure copy, and a reworded
profileNeedednaming the graded rounds.🤖 Generated with Claude Code