Subject: {{ exam.subject.name }}
Class: {{ exam.exam_class }}
{% if exam.exam_mode == 'kcse' %}
Duration: {{ exam.duration_minutes }} min
Marks: {{ exam.total_marks }}
KCSE
{% elif exam_content.format == 'cbc_exam_v1' %}
Task Type: {{ exam.task_type | capitalize }}
Marks: {{ exam.total_marks }}
CBC
{% else %}
Task Type: {{ exam.task_type | capitalize }}
Competency: {{ exam.competency_focus }}
CBC
{% endif %}
{% if exam.exam_mode == 'kcse' %}
{% if exam_content.section_a %}
SECTION I
{% for q in exam_content.section_a %}
{{ q.question_number or loop.index }}. {{ q.question_text }}
{% if q.diagram_svg %}
{{ q.diagram_svg | safe }}
{% elif q.image_url %}
{% endif %}
{% if q.options %}
{% if q.options is mapping %}
{% for opt, text in q.options.items() %}
({{ opt }}) {{ text }}
{% endfor %}
{% else %}
{% for opt in q.options %}
- {{ opt }}
{% endfor %}
{% endif %}
{% endif %}
{% endfor %}
{% endif %}
{% if exam_content.section_b %}
SECTION II
{% for q in exam_content.section_b %}
{{ q.question_number or loop.index }}. {{ q.question_text }}
{% if q.diagram_svg %}
{{ q.diagram_svg | safe }}
{% elif q.image_url %}
{% endif %}
{% if q.sub_questions %}
{% for sq in q.sub_questions %}
({{ loop.index }}) {{ sq }}
{% endfor %}
{% endif %}
[{{ q.marks }} marks]
{% endfor %}
{% endif %}
{% if exam_content.section_c %}
SECTION III
{% for q in exam_content.section_c %}
{{ q.question_number or loop.index }}. {{ q.question_text }}
{% if q.diagram_svg %}
{{ q.diagram_svg | safe }}
{% elif q.image_url %}
{% endif %}
{% if q.sub_questions %}
{% for sq in q.sub_questions %}
({{ loop.index }}) {{ sq }}
{% endfor %}
{% endif %}
[{{ q.marks }} marks]
{% endfor %}
{% endif %}
{% elif exam_content.format == 'cbc_exam_v1' %}
{% if exam_content.needs_review %}
A diagram could not be generated for:
{{ exam_content.needs_review | join(', ') }} — review before printing.
{% endif %}
{% for section in exam_content.sections %}
{{ section.name }}
{% if section.instructions %}
{{ section.instructions }}
{% endif %}
{% for q in section.questions %}
{{ loop.index }}. {{ q.question_text }}
[{{ q.marks }} mark{{ 's' if q.marks != 1 }}]
{% if q.image_svg %}
{{ q.image_svg | safe }}
{% endif %}
{% if q.options %}
{% for opt, text in q.options.items() %}
({{ opt }}) {{ text }}
{% endfor %}
{% endif %}
{{ q.strand }}{% if q.sub_strand %} · {{ q.sub_strand }}{% endif %}
{% endfor %}
{% endfor %}
{% else %}
{{ exam_content.task_title }}
Real Life Scenario:
{{ exam_content.real_life_scenario }}
Learning Outcomes:
{% for outcome in exam_content.learning_outcomes %}
- {{ outcome }}
{% endfor %}
Activity Steps:
{% for step in exam_content.activity_steps %}
Step {{ step.step_number }}: {{ step.instruction }}
{{ step.action }}
{% endfor %}
{% endif %}