Manage Question Bank › Question Bank Panel
๐ŸŽฌ Simulate:

Introduction to Python Programming

Draft v1 โ€บ Question Bank
โ† Back to Editor
Type Question Tags Status Ver Actions
MC Which of the following correctly defines a variable in Python? variables syntax Active v2 Edit
MC (multi) Select all statements that are valid ways to create a list in Python. (select all that apply) lists Active v1 Edit
TF Python is a statically typed language. (True/False) types Active v1 Edit
Short Write a Python function that returns the square of a given number. functions Active v3 Edit
Match Match each Python keyword to its description. keywords Active v1 Edit
Numerical A list has index positions from 0 to N-1. What is the correct upper index bound for a 10-element list? lists indexing Active v1 Edit
๐Ÿ”€
Sub-flow invocation โ€” question authoring by type
"Add Question" / "Edit" route to the authoring form matching the question's type; on save, control returns here.
๐Ÿ“ Spec notes โ€” UC-CCM.12 / SCR-CCM.29 (fields, actions, requirements)
Identity
  • Screen: SCR-CCM.29 โ€” Question Bank Panel
  • Use case: UC-CCM.12 โ€” Manage Question Bank
Brief description

Embedded panel rendered as the "Questions" tab of the Content Editor (SCR-CCM.02). Displays all questions in the current course's question bank with a filter bar (by type, tags, and status) and a question list with per-row actions. Instructors can add new questions, edit existing ones, manage tags inline, retire (disable) active questions, and restore disabled ones. Adding or editing a question opens the corresponding question authoring form (SUC-CCM-07 through SUC-CCM-10).

Fields
  • type_filter "Type" โ€” enum ยท one of: all, mcq, multi_select, true_false, short_answer, numerical, match ยท fallback "all" ยท always visible
  • tags_filter "Tags" โ€” enum (multi) ยท data_ref: QuestionTag.name ยท fallback [] ยท always visible
  • status_filter "Status" โ€” enum ยท one of: active, disabled, all ยท fallback "active" ยท always visible
  • add_question_type "Question Type" โ€” enum ยท region: Add Question Control ยท required and visible when add_question_clicked == true
  • tag_input "Tag" โ€” text ยท max length 100 ยท region: Question List ยท visible when row_tags_editor_open == true
Actions
  • add_question "Add Question" โ€” enabled always ยท triggers UC-CCM.12-M-2
  • edit_question "Edit" โ€” enabled always ยท triggers UC-CCM.12-A-1B-1
  • manage_tags "Tags" โ€” enabled always ยท triggers UC-CCM.12-A-1C-1
  • retire_question "Retire" โ€” enabled when question.status == active ยท triggers UC-CCM.12-A-1D-1
  • restore_question "Restore" โ€” enabled when question.status == disabled ยท triggers UC-CCM.12-A-1E-1
  • confirm_retire "Confirm" โ€” enabled always ยท triggers UC-CCM.12-A-1D-3
  • cancel_retire "Cancel" โ€” enabled always ยท triggers UC-CCM.12-A-1D.3A-1
  • search_questions "Search" โ€” enabled always ยท triggers UC-CCM.12-M-1
  • clear_filters "Clear" โ€” enabled always ยท triggers UC-CCM.12-M-1
Additional requirements
  1. When the course has no questions yet, the Question List area shows an empty state (icon + message) replacing the table. The "Add Question" control in the table header remains visible so the instructor can add the first question without navigating away.
  2. The inline tag editor on a question row closes when the instructor clicks outside the row or presses Escape. Each add/remove tag action saves immediately without a separate Save button.
  3. The retirement confirmation prompt expands inline below the selected question row. It displays the question stem and type. When the question is currently selected as a fixed question in one or more quiz sections (pinned via QuizQuestionRef), the prompt shows an additional warning that retiring will exclude the question from random draw pools but will not remove it from quiz sections that already selected it as a fixed question. [refs: SS-CCM.34]
UC additional requirements
  1. Questions in this bank belong to the current course. Quizzes built in this course can use these questions โ€” either by selecting specific questions directly (fixed) or by setting rules to draw random questions from the pool. See SUC-CCM-11 for how quizzes assemble question sets.
  2. A question's type cannot be changed after it is created โ€” to change the type, retire the question and create a new one.
  3. Tags belong to this course's question bank. New tag names are created automatically when typed โ€” no separate administration is needed. A tag cannot be removed from the question bank while any question in it still uses it.
  4. The system checks that each question's answer key is complete and valid before saving. If the check fails, the form shows which fields need to be corrected. [refs: SS-CCM.09]
  5. A retired (disabled) question is excluded from future random-draw pools, but quiz sections that already selected it as a fixed question keep it โ€” retiring never removes a question from a quiz section that pinned it. [refs: SS-CCM.34]