Skip to content

[QTI] Carry legacy hints into generated QTI items as dormant catalog content #6011

Description

@rtibbles

Overview

Legacy assessment items carry progressively-revealed hints (AssessmentItem.hints) that the QTI generator drops. Emit them into the generated QTI item as a qti-catalog-info catalog of support="kolibri:hint" cards — dormant content the QTI 3.0 schema excludes from default delivery — carried in raw_data through publish so Kolibri can render them. Legacy-only; the new editor does not author hints.

Complexity: Medium
Target branch: unstable

Context

  • Legacy hints: AssessmentItem.hints is a JSON list [{"hint": <markdown>, "order": N}]; base.py:_process_hints converts markdown→HTML and extracts images.
  • The QTI generator (utils/assessment/qti/) emits nothing for hints today.
  • XSD validation ([QTI] QTI 3.0 schema XML validation utilities #6005) is authoritative and runs on save/publish.

The Change

Emit legacy hints into the generated QTI item as a dormant qti-catalog-info catalog — rendered by Kolibri, ignored by default players.

<qti-catalog-info>
  <qti-catalog id="kolibri-hints">
    <qti-card support="kolibri:hint"><qti-html-content><p>First hint…</p></qti-html-content></qti-card>
    <qti-card support="kolibri:hint"><qti-html-content><p>…solution.</p></qti-html-content></qti-card>
  </qti-catalog>
</qti-catalog-info>

Acceptance Criteria

References

AI usage

Claude verified the carrier against the QTI 3.0 ASI XSD — confirming qti-catalog-info holds dormant, non-delivered content, accepts a custom kolibri:hint support value, and that HTML <template> is restricted to custom-interaction markup — then drafted the issue section by section. The maintainer chose the catalog approach and the kolibri:hint value and steered each section.

Metadata

Metadata

Assignees

No one assigned

    Type

    Fields

    No fields configured for Task.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions