[QTI] Editing a question keeps the item-level content the editor doesn't write
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 55/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- javascript, python
- 領域
- frontend
調査の方向性
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.
索引モデルが issue の本文から書いたものです。
説明
❌ 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.
- 主要言語
- Python
- スター
- 191
- フォーク
- 308
- 平均マージ
- 2日 3時間
- マージ済み PR(30日)
- 54
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
learningequality/studio のほかの issue
-
DEV: frontend P3 - low
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
learningequality/studio#5868 ·
メンテナーはふだん 1 日以内に返信
-
TAG: tech update / debt
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
learningequality/studio#2245 ·
メンテナーはふだん 1 日以内に返信
-
bug DEV: backend
難易度 3/5 半日 初心者へのやさしさ 35/100
learningequality/studio#6294 ·
メンテナーはふだん 1 日以内に返信
-
DEV: frontend
難易度 2/5 1〜3時間 初心者へのやさしさ 28/100
learningequality/studio#6292 ·
メンテナーはふだん 1 日以内に返信
-
[QTI] Editing a question keeps the interaction attributes the editor doesn't set対応中かも @rtibblesbot が 1 日前に担当しました。 オープンbug
learningequality/studio#6287 · リアクション 1 件 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
learningequality/studio の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
メンテナーはふだん 3 日以内に返信
-
Negation with "not" and "no" is ignored during sentiment analysis対応中かも @vivek-3728 が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
techcsispit/mess-mood#11 · コメント 1 件 ·
-
changelog investigate
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
ramnes/notion-sdk-py#408 ·
-
good first issue
難易度 2/5 1〜3時間 初心者へのやさしさ 83/100
btclib-org/btclib-wallet#267 ·
メンテナーはふだん 1 日以内に返信
-
good first issue tech-debt
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
knnmelprop/YAADO#111 ·