[QTI] Editing a question keeps the item-level content the editor doesn't write
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 55/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- javascript, python
- Domain
- frontend
Research direction
Start with contentcuration/frontend/shared/views/QTIEditor/serialization/assembleItem.js, especially assembleItemXml, and trace how useQtiItem opens and emits the item. Add or locate tests that open an item containing each listed stylesheet, modal-feedback element, or root attribute, then inspect emitted raw_data. Done means all three are preserved after editing, with tests covering each case.
Written by the indexing model from the issue text.
Description
❌ This issue is not open for contribution. Visit Contributing guidelines to learn about the contributing process and how to find suitable issues.
Target branch: unstable
Observed behavior
The first edit to a QTI question rewrites <qti-assessment-item> with only what assembleItemXml writes: the root's identifier, title, language and fixed flags, response and outcome declarations, the body, the hint catalog and response processing. Anything else outside <qti-item-body> is dropped:
<qti-stylesheet><qti-modal-feedback>- root attributes such as
xsi:schemaLocation
Errors and logs
None. The content is lost without a warning.
Expected behavior
An edit keeps every element and attribute of <qti-assessment-item> outside <qti-item-body> that the editor doesn't write, or the item shows unsupportedItemMessage$() read-only, as #6225 does for bodies the editor can't reproduce.
User-facing consequences
An item uploaded with ricecooker that carries a stylesheet or modal feedback loses it the first time an author changes anything, such as a hint. Learners then see the question unstyled, or get no feedback after answering.
Steps to reproduce
- Open an exercise containing a QTI choice item with
<qti-stylesheet href="style.css" type="text/css"/>before<qti-item-body>and a<qti-modal-feedback>after it. - Click Edit and remove a hint.
- Inspect the emitted
raw_data: it has no<qti-stylesheet>and no<qti-modal-feedback>.
Acceptance Criteria
- Editing an item with a
<qti-stylesheet>doesn't lose it. - Editing an item with a
<qti-modal-feedback>doesn't lose it. - Editing an item whose root carries
xsi:schemaLocationdoesn't lose it. - Tests cover each case above, from opening the item to the emitted
raw_data.
AI usage
Claude Code found this while reviewing the #6225 branch and drafted this issue. The loss was reproduced under Jest on unstable by opening such an item through useQtiItem, removing a hint and reading the assembled XML.
- Dominant language
- Python
- Stars
- 191
- Forks
- 308
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 54
Getting set up
- Ships a Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from learningequality/studio
-
DEV: frontend P3 - low
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
learningequality/studio#5868 ·
Maintainers usually reply within 1 day
-
TAG: tech update / debt
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
learningequality/studio#2245 ·
Maintainers usually reply within 1 day
-
bug DEV: backend
Difficulty 3/5 Half a day Newbie friendliness 35/100
learningequality/studio#6294 ·
Maintainers usually reply within 1 day
-
DEV: frontend
Difficulty 2/5 1-3 hours Newbie friendliness 28/100
learningequality/studio#6292 ·
Maintainers usually reply within 1 day
-
[QTI] Editing a question keeps the interaction attributes the editor doesn't setPossibly taken @rtibblesbot claimed this 1 day ago. Openbug
learningequality/studio#6287 · 1 reaction · 1 assignee ·
Maintainers usually reply within 1 day
All issues in learningequality/studio
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Juniper/ansible-junos-stdlib#904 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
pollen-robotics/reachy_mini#1457 ·
Maintainers usually reply within 1 day
-
area:runtime good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
WATonomous/wato_f1tenth#39 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
FireDynamics/fdsreader#123 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 85/100