Skip to content

[ENHANCEMENT] [MER-5925][MER-5927] Improve section pool migration - #301

Merged
darrensiegel merged 2 commits into
masterfrom
MER-5925-spreadsheet-enhancements
Sep 12, 2026
Merged

darrensiegel merged 2 commits into
masterfrom
MER-5925-spreadsheet-enhancements

Conversation

@andersweinstein

@andersweinstein andersweinstein commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Summary

This enhances migration of legacy section pools, a rarely used legacy feature that combines heterogeneous questions into sections each containing a group of questions (typically related) to be selected as a unit. This feature does not exist in torus. Migration has handled these by combining all questions in a pool section into a single synthesized Torus multi-input activity to be selected from the activity bank.

A weakness of this translation has been that multiple choice questions in the section may use rich content including images and tables for the choices. But multi-input dropdowns can only contain plain text. In addition, "magic spreadsheet" [skill map] handling did not allow for linking items in the newly synthesized questions to spreadsheet entries with legacy ids.

Motivation

This enhancement was motivated by migration of Argument Diagramming (HTML5), whose section pools contain table-based and image-based choices and whose spreadsheet maps learning objectives to their legacy questions and parts.

Changes

  • Preserve each legacy child question ID in the synthesized Torus part IDs, including qualified IDs for multi-part children, so provenance remains recoverable for learning-objective attachment via skill map spreadsheet .
  • Keep rich multiple-choice options usable when conversion requires a plain-text dropdown: table or image choices are rendered as a labeled legend in the stem, while the dropdown uses matching A/B/C labels.
  • Align image-only legends with a borderless two-column table; retain table and mixed-content choices in a vertical list.
  • Add focused fixtures and regression coverage for rich choices, part identity, and spreadsheet resolution.

Spreadsheet support

The supporting magic-spreadsheet changes resolve learning-objective references against the preserved section-pool provenance. They also include drive-by compatibility and robustness improvements not strictly required by the motivating tickets: exact and resource-scoped matching precede narrow ordinal fallbacks, legacy Step references are handled, blank Problem rows apply at resource level, and LO Ref is optional when course-defined objectives supply the needed information.

Verification

  • Full Jest suite: 34 suites, 119 tests passed
  • Prettier check passed for the new section-pool implementation and test
  • ESLint passed for the new section-pool implementation and test

Section MCQ question to multi-input part with table-based choices:

Screenshot 2026-09-08 at 4 49 40 PM

Section MCQ question to multi-input part with image-based choices:

Screenshot 2026-09-08 at 4 50 15 PM

@darrensiegel
darrensiegel merged commit 897ff64 into master Sep 12, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants