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
❌ This issue is not open for contribution. Visit Contributing guidelines to learn about the contributing process and how to find suitable issues.
Overview
An exercise holding a legacy perseus_question and no native QTI item publishes only a Perseus archive. A legacy input question in it whose accepted answers Perseus can't read as a finite number (Sphere, +3, 1E3, 1e400) becomes a numeric-input with answers: [], which nothing a learner enters can satisfy. #6210 leaves the blank-answer ones out and excludes these; #6273 sends mixed native QTI exercises holding them to QTI only, where they publish as text entries.
Complexity: Low Target branch: unstable
Context
An exercise with a perseus_question and no native QTI item gets PerseusExerciseGenerator only:
Replace the parallel number readers with one, shared by the Perseus export, QTI conversion and Perseus derivation: extract_value (utils/parser.py), the _JS_NUMBER fallback (utils/assessment/qti/convert.py) and Normalise xsd:double text entry answers for Perseus derivation #6259's normalisation (utils/assessment/qti/perseus_derive.py).
Publish an exercise holding one legacy perseus_question and one legacy input question answered Sphere, then read the input question's item JSON in the .perseus file.
Acceptance Criteria
In an exercise holding a legacy perseus_question, a legacy input question answered ["+3"] or ["1E3"] publishes in the Perseus archive with numeric-input answers [3] or [1000].
An exercise holding a legacy perseus_question and a legacy input question answered ["Sphere"] or ["1e400"] publishes a QTI package holding both questions and no Perseus archive.
No published file serves a legacy input question as a numeric-input with answers: [].
The published node's AssessmentMetaData.assessment_item_ids lists only items its published files contain.
test_exportchannel.py covers those exercises.
AI usage
Claude Code found this during an automated self-review of #6273, reproduced it with a scratch publish test on unstable and on that branch, and drafted this issue.
❌ This issue is not open for contribution. Visit Contributing guidelines to learn about the contributing process and how to find suitable issues.
Overview
An exercise holding a legacy
perseus_questionand no native QTI item publishes only a Perseus archive. A legacy input question in it whose accepted answers Perseus can't read as a finite number (Sphere,+3,1E3,1e400) becomes anumeric-inputwithanswers: [], which nothing a learner enters can satisfy. #6210 leaves the blank-answer ones out and excludes these; #6273 sends mixed native QTI exercises holding them to QTI only, where they publish as text entries.Complexity: Low
Target branch: unstable
Context
perseus_questionand no native QTI item getsPerseusExerciseGeneratoronly:studio/contentcuration/contentcuration/utils/publish.py
Lines 408 to 409 in f65cb93
_process_input_answersdrops every answerextract_valuedoes not read as a number:studio/contentcuration/contentcuration/utils/assessment/perseus.py
Lines 80 to 88 in f65cb93
perseus_questionand one legacy input question, published onunstableand with Publish mixed exercises QTI only when Perseus can't read a legacy input answer #6273:The Change
extract_value(utils/parser.py), the_JS_NUMBERfallback (utils/assessment/qti/convert.py) and Normalise xsd:double text entry answers for Perseus derivation #6259's normalisation (utils/assessment/qti/perseus_derive.py).How to Get There
perseus_questionand one legacy input question answeredSphere, then read the input question's item JSON in the.perseusfile.Acceptance Criteria
perseus_question, a legacy input question answered["+3"]or["1E3"]publishes in the Perseus archive withnumeric-inputanswers[3]or[1000].perseus_questionand a legacy input question answered["Sphere"]or["1e400"]publishes a QTI package holding both questions and no Perseus archive.numeric-inputwithanswers: [].AssessmentMetaData.assessment_item_idslists only items its published files contain.test_exportchannel.pycovers those exercises.AI usage
Claude Code found this during an automated self-review of #6273, reproduced it with a scratch publish test on
unstableand on that branch, and drafted this issue.