You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[QTI] Backfill all non-raw AssessmentItems to QTI items #6007
❌ This issue is not open for contribution. Visit Contributing guidelines to learn about the contributing process and how to find suitable issues.
Overview
Run the one-time global backfill converting every legacy AssessmentItem to type='QTI' + raw_data XML via #6003's conversion, then remove the API-layer dual-read.
After the backfill, every legacy row is type='QTI' with raw_data XML; only perseus_question rows remain unconverted
Rows that fail conversion are surfaced, not silently dropped
The backfill is resumable and safe to re-run
With the backfill complete, the API serves QTI directly without the dual-read
Tests cover the backfill over a mixed fixture
AI usage
Architecture decided with the maintainer across an iterative session: blanket QTI type with the item XML in raw_data; XSD-authoritative validation across all sources; a legacy→QTI global migration with an API-layer dual-read; ricecooker upload delegating to the AssessmentItem serializer; and a Perseus custom-interaction contract confirmed against the QTI 3.0 specification. Claude mapped the existing publish/validation/ricecooker code, proposed the breakdown, and drafted each issue; the maintainer steered every decision and reviewed throughout.
Note that we should make sure that the result of this migration is compatible with the publish workflow, if not, items may be migrated, they may potentially not be editable by the qti editor to fix something missing, and on top of that, they may break the publish task.
Activity
feat: convert still-legacy assessment items to QTI on read
fix: accept QTI edits on questions the API converts on read
fix: accept QTI edits on questions the API converts on read
feat: convert still-legacy assessment items to QTI on read
fix: accept QTI edits on questions the API converts on read
fix: accept QTI edits on questions the API converts on read
fix: accept QTI edits on questions the API converts on read
fix: read and write converted legacy questions correctly
3 remaining items
fix: read and write converted legacy questions correctly
fix: read and write converted legacy questions correctly
feat: convert still-legacy assessment items to QTI on read
feat: convert still-legacy assessment items to QTI on read
feat: convert still-legacy assessment items to QTI on read
fix: read and write converted legacy questions correctly
feat: convert still-legacy assessment items to QTI on read
fix: read and write converted legacy questions correctly
feat: convert still-legacy assessment items to QTI on read
fix: read and write converted legacy questions correctly
feat: convert still-legacy assessment items to QTI on read
fix: read and write converted legacy questions correctly
AlexVelezLl commentedon Sep 15, 2026
Note that we should make sure that the result of this migration is compatible with the publish workflow, if not, items may be migrated, they may potentially not be editable by the qti editor to fix something missing, and on top of that, they may break the publish task.
fix: read and write converted legacy questions correctly