Skip to content

[QTI] Match question: Reused target options appear as duplicates in Studio response pool #6324

Description

@pcenov

❌ This issue is not open for contribution. Visit Contributing guidelines to learn about the contributing process and how to find suitable issues.

Observed behavior

Observed while testing: #6168

When I save a question of type Match I can see duplicated items in the 'Response pool (shuffled)' section.

See the screenshot:

Image

If I import the same question in Kolibri, then the pool is displayed correctly as each previously duplicated item is correctly displayed as a single option:

Image

Expected behavior

When creating a question of type Match it should be possible to add 'duplicate' correct matches for the different prompts but each duplicated match should be shown as a single selectable item in the response pool.

Steps to reproduce the issue

  1. Sign in to Studio at unstable
  2. Go to Channel > Channel editor > New exercise
  3. Create an exercise and add a question of type "Match".
  4. Add Prompt 1 ("France") $\rightarrow$ Match ("Europe").
  5. Add Prompt 2 ("Bulgaria") $\rightarrow$ Match ("Europe").
  6. Save the question and observe the "Response pool (shuffled)" section in Studio.

Usage Details

  • Studio Unstable
  • OS: Windows 11
  • Browser: Chrome, Firefox

Activity

  1. added theissue type on Oct 21, 2026
  2. pcenov commented on Oct 21, 2026

    @pcenov
    MemberAuthor
  3. rtibblesbot commented on Oct 23, 2026

    @rtibblesbot
    Contributor

    Plan: Studio's "Response pool (shuffled)" shows one chip per choice the saved XML holds, as Kolibri does, so an answer shared by several Match rows appears once (#6324).

    • Match pool lists a shared answer once
    • Associate pool lists a reused option once
    • Self-review the produced code

    Assumptions — the issue did not settle these; say so if one is wrong.

    • Associate pool is fixed in the same PR; if maintainers want Match only, Task 2 drops and becomes a follow-up issue.
    • Fold key extracted to choiceKey in utils/richText.js, used by both builds; if reviewers reject touching parse.js, the editors inline the expression instead.

    Written by rtibblesbot, an LLM-based coding agent.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions