| Keyword | Fraction (0β1) | Feedback when matched (optional) | |
|---|---|---|---|
Prototype β simulate state:
Screen Flow (SUC-CCM-08):
Spec notes
Identity
SUC-CCM-08 Β· Screen: SCR-CCM.07 (Question Editor β Short Answer)
ReturnUrl context
Current returnUrl: /manage-question-bank/
Fallback: / when returnUrl is empty.
Propagation: Save β returnUrl. Cancel β returnUrl + &sub_cancelled=1.
Sub-flow context
SUC-CCM-08 Β· Invoked by (Backoffice Portal): SUC-CCM-11 (Build Quiz) and UC-CCM.12 (Manage Question Bank).
Question type is locked to short_answer and cannot be changed after first save.
The learner's response is matched against all keywords β the highest matching fraction determines the score (partial credit supported).
New question: Question + QuestionVersion v1 + QuestionAnswer rows, status Active.
Edit mode: a new QuestionVersion is saved; the previous version is preserved for quiz sections already referencing it.
Cancel (AF 5A): no data saved, question bank unchanged.
Validation error (AF 6A): shows an error on each field that failed the requirement; resumes at step 5.
Screen spec: SCR-CCM.07 (short_answer type)
- Regions: Question Header Β· Question Text Β· Type-Specific Content Β· Feedback & Explanation Β· Scoring Β· Form Actions
- question_type (Field 2): read-only Β· locked to param.type = short_answer Β· data_ref: Question.type
- question_text (Field 3): required Β· 1β5000 chars Β· data_ref: QuestionVersion.text
- sa_keywords (Field 8): dynamic table β keyword (QuestionAnswer.content), fraction (QuestionAnswer.fraction, 0..1), feedback (QuestionAnswer.feedback, optional); at least 1 keyword required, each non-empty
- sa_case_insensitive (Field 9): question-level toggle, default on (case-insensitive) Β· data_ref: QuestionVersion.config.case_insensitive
- explanation (Field 5): optional Β· max 5000 Β· data_ref: QuestionVersion.config.explanation
- points (Field 4): required Β· 0.01β1000 Β· default 1 Β· data_ref: QuestionVersion.points
- AR#1: at least 1 keyword, each non-empty (SS-CCM.09). AR#2: atomic save β no partial data on failure (SS-CCM.07).