Repository navigation
Draw problems from a saved practice list - #401
Merged
Merged
Conversation
jserv
reviewed
Oct 21, 2026
jserv
reviewed
Oct 21, 2026
Quinton1230
force-pushed
the
saved-practice-list
branch
from
October 21, 2026 05:22
9a45f6e to
df20043
Compare
Quinton1230
marked this pull request as ready for review
October 21, 2026 05:28
Quinton1230
force-pushed
the
saved-practice-list
branch
from
October 21, 2026 06:00
df20043 to
541e7af
Compare
Quinton1230
force-pushed
the
saved-practice-list
branch
from
October 21, 2026 06:06
541e7af to
31d18d6
Compare
jserv
reviewed
Oct 21, 2026
Quinton1230
force-pushed
the
saved-practice-list
branch
from
October 21, 2026 09:03
31d18d6 to
1b03fbc
Compare
Quinton1230
force-pushed
the
saved-practice-list
branch
from
October 22, 2026 05:44
1b03fbc to
3bacd86
Compare
jserv
reviewed
Oct 22, 2026
jserv
reviewed
Oct 22, 2026
Quinton1230
force-pushed
the
saved-practice-list
branch
from
October 22, 2026 07:49
3bacd86 to
23f7a49
Compare
Let candidates rehearse a chosen set of exercises without selecting each next problem by hand. Keep this list in browser storage and draw from its valid IDs independently of recommendation filters, while preserving direct selection and a manually chosen interview length. Closes sysprog21#368
Quinton1230
force-pushed
the
saved-practice-list
branch
from
October 22, 2026 08:02
23f7a49 to
040c5cf
Compare
Contributor
|
Thank @Quinton1230 for contributing! |
jserv
added a commit
that referenced
this pull request
Oct 22, 2026
Since #401 each card sits in an entry that filtering hides along with it, but #410's layout test toggled only the card and counted cards by their attribute, so cards inside hidden entries measured as one row of 57. The test now hides and restores whole entries and counts what is rendered, and the outline measures the entries the grid lays out.
AchlysChang
pushed a commit
to AchlysChang/codetrial
that referenced
this pull request
Oct 22, 2026
Draw problems from a saved practice list
AchlysChang
pushed a commit
to AchlysChang/codetrial
that referenced
this pull request
Oct 22, 2026
Draw problems from a saved practice list
AchlysChang
pushed a commit
to AchlysChang/codetrial
that referenced
this pull request
Oct 22, 2026
Draw problems from a saved practice list
AchlysChang
pushed a commit
to AchlysChang/codetrial
that referenced
this pull request
Oct 22, 2026
Draw problems from a saved practice list
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.
Candidates can mark problems in the lobby and use "Pick from my list" to draw uniformly from that saved set, avoiding the current problem when another marked problem is available. The draw button and list status remain visible while the specific-problem picker is collapsed. The list is stored in this browser, without account or device synchronization.
Drawing from the list leaves difficulty and topic filters and a manually chosen duration unchanged. Later explicit filter changes follow the existing manual-selection rules: keep the selected problem when it still matches, or recommend another matching problem when it is excluded. Neither path edits the saved list. Returning through the browser's back/forward cache keeps any explicit problem choice visible, including a card selection, a list draw, and a history "Try again" selection.
Problem cards have separate selection buttons and labeled list checkboxes. Stored IDs are validated against the current bank, and changes synchronize between lobby tabs. Failed writes preserve unsaved changes for the current visit. An empty list disables the draw action with an explanation; if another tab empties the list while the draw button has keyboard focus, focus moves to the status before the button is disabled. The existing recommendation and general random-selection pools are unchanged.
Validation:
Closes #368
Summary by cubic
Adds a saved practice list to the lobby so candidates can mark problems with an "In my list" checkbox and draw the next one uniformly from that set, avoiding the current problem when another marked problem is available. The list persists in
localStoragewithout account or device sync and stays in sync between lobby tabs; recommendation and general random selection keep their own pools and ignore the practice list.The draw button and list status remain visible with the problem picker collapsed. A drawn problem can fall outside the difficulty or topic filters; draws keep a manually chosen duration and otherwise apply the drawn problem's suggested one, without rewriting filters or editing the saved list. Later filter changes follow the existing manual-selection rules, and back/forward restore keeps an explicit choice visible, whether picked by card, practice draw, or history's Try again.
Stored IDs are validated against the current problem bank; empty, malformed, or retired lists disable the draw, moving focus to the status when another tab empties the list while the button is focused. Failed or blocked
localStoragekeeps the list usable for the current visit with a "Kept for this visit only" note. Problem cards get separate selection buttons and labeled checkboxes.Closes #368.
Written for commit 040c5cf. Summary will update on new commits.