[QTI] Editing a question keeps the interaction attributes the editor doesn't set
I maintainer di solito rispondono entro 1 giorno
@rtibblesbot ci sta già lavorando.
Dal 5/10/2026.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
❌ 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 its interaction element with only the attributes its builder sets. Any other attribute is dropped.
- Text entry:
buildTextEntryInteractionXMLwrites onlyresponse-identifierandexpected-length. - Every legacy input question converted by
convert.pycarriesplaceholder-text="Enter your answer here", which is lost. - Choice: the builder drops
class, soclass="qti-labels-upper-alpha"is lost.
Errors and logs
None.
Expected behavior
An edit keeps every attribute on the interaction element that the editor doesn't set.
User-facing consequences
Learners see a question that differs from the one uploaded, e.g. an answer field without its placeholder, or choices without their labels.
Steps to reproduce
- Open an exercise with a legacy input question that was converted to QTI.
- Click Edit and change a hint.
- Inspect the emitted
raw_data:<qti-text-entry-interaction>has noplaceholder-text.
Acceptance Criteria
- Editing a converted text entry question keeps
placeholder-text. - Editing a choice question keeps a
classon<qti-choice-interaction>. - Tests cover both cases through parse, build and assemble.
AI usage
Claude Code found this while reviewing the #6225 branch and drafted this issue. Both losses were reproduced under Jest by parsing an item, rebuilding it with its descriptor and assembling it.
- Lingua principale
- Python
- Stelle
- 191
- Fork
- 308
- Merge medio
- 2g 3h
- PR unite (30g)
- 54
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di learningequality/studio
-
Set unpublishable: true on PublishedChange by construction to simplify handleMaxRevs predicateApertaDEV: frontend P3 - low
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
learningequality/studio#5868 ·
I maintainer di solito rispondono entro 1 giorno
-
TAG: tech update / debt
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
learningequality/studio#2245 ·
I maintainer di solito rispondono entro 1 giorno
-
bug DEV: backend
Difficoltà 3/5 Mezza giornata Idoneità per principianti 35/100
learningequality/studio#6294 ·
I maintainer di solito rispondono entro 1 giorno
-
DEV: frontend
Difficoltà 2/5 1-3 ore Idoneità per principianti 28/100
learningequality/studio#6292 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
learningequality/studio#6290 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di learningequality/studio
Issue simili
-
defect from-review v0.9.2
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
khuisman/mcp-gee-sweet#926 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 Meno di un'ora Idoneità per principianti 84/100
EtanHey/brainlayer#1164 ·
I maintainer di solito rispondono entro 1 giorno
-
bug security
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
yunaremaia/vibeguard#141 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
PrismorSec/prismor#599 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
iii-hq/iii#2278 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno