Prototype — simulate state:
Screen Flow (SUC-CCM-10):
Spec notes
Identity
SUC-CCM-10 · Screen: SCR-CCM.07 (Question Editor — Numerical)
ReturnUrl context
Current returnUrl: /manage-question-bank/
Fallback: / when returnUrl is empty.
Propagation: all state links carry returnUrl. Save → returnUrl. Cancel → returnUrl + &sub_cancelled=1.
Sub-flow context
SUC-CCM-10 · Invoked by (Backoffice Portal): SUC-CCM-11 (Build Quiz), UC-CCM.12 (Manage Question Bank).
Question type is locked to Numerical and cannot be changed after the question is first saved.
Correct answer + tolerance define the accepted range: tolerance = 0 requires the exact value; tolerance > 0
= symmetric accepted range ±tolerance around the correct value.
New question: saved with Active status, immediately available for use in quizzes in this course.
Edit mode: a new version is saved; the previous version is preserved — quiz sections that already
referenced it continue using that version unchanged.
Cancel (AF 5A): no question data is saved; the question bank remains unchanged.
Screen spec: SCR-CCM.07 (numerical type)
- Regions: Question Header · Question Text · Type-Specific Content · Feedback & Explanation · Scoring · Form Actions
- question_type: read-only · locked to param type · data_ref: Question.type
- question_text: required · 1–5000 chars · data_ref: QuestionVersion.text
- numerical_answer: required · must be a valid number · data_ref: QuestionAnswer.content
- numerical_tolerance: required · non-negative number · default 0 · data_ref: QuestionAnswer.tolerance
- explanation: optional · max 5000 · shown to all learners post-submit · data_ref: QuestionVersion.config.explanation
- points: required · 0.01–1000 · default 1 · data_ref: QuestionVersion.points
- AR#1: correct answer must be a valid number; tolerance must be a non-negative number (SS-CCM.09). AR#2: save is atomic — no partial data kept on failure (SS-CCM.07).