feat(gradebook): external assessment management panel and drag-and-drop reorder#8463
Open
LWS49 wants to merge 1 commit into
Open
Conversation
947f45d to
e26ee62
Compare
…ete, reorder, weight integration Adds the management surface on top of the read-only foundation: - Manage panel (launched from the gradebook + weighted toolbars) with add, edit, and delete prompts; drag-and-drop reordering of external columns. - Weighted-view integration: external rows in Configure Weights (name + single weight, no mode/expand), and flat external grouping in the column picker. - Store reducers + thunks for create/update/delete/reorder; API + types. - Backend: create/update/destroy/reorder actions with jbuilders; a per-course `position` column (append-on-create, reorder! rewrites order); routes. Import and grade-validation deliberately omitted (PR4 / PR3).
e26ee62 to
dc5c67b
Compare
d8f247f to
659f621
Compare
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.
Summary
Gives external assessments a proper management home. A single page-level "Manage external assessments" panel (above the tabs) lists every external (Name / Max / Weight / Actions) and hosts Add, Edit, and Delete; it replaces what would otherwise be scattered toolbar buttons and an in-column kebab menu. Externals can be reordered by drag-and-drop, persisted via a new
positioncolumn and served in canonical order. Adding or editing an external with a non-zero weight while the equal-split default is showing freezes that split first, so setting one real weight does not collapse every other tab to zero.Design decisions
canManageWeightsbut not onweightedViewEnabled- recording a paper-exam grade is valid even with weighting off, so externals must stay manageable; the Weight column is read-only and shown only when the weighted view is on (weight editing stays in Configure Weights, to avoid two edit paths).updateWeightsendpoint and thematerializedDefaultWeightshelper) - otherwise setting one real weight would disengage the fallback and collapse every other tab to its stored 0. No-op when weights are already configured or the new weight is 0.Regression prevention
Covers: the manage panel (list, add/edit/delete, empty state), the delete prompt (confirm / failure-toast / cancel paths), the edit prompt (rename, max, floor/cap toggles), drag-reorder dispatch and failure rollback, the default-weight materialization on add/edit, and the related gradebook operation thunks and store reducers. Adds the
positionmigration (20260624, reversible); existing externals get sequential positions on migrate, so the change is backward compatible. External-assessments controller and model specs run on CI.