{% extends 'base.html' %} {% block extra_css %} {% endblock %} {% block content %}

{{ exam.title }}

Download PDF Download Word
{% if exam.exam_mode == 'cbc' %}Assessment Activity{% else %}Exam Paper{% endif %}
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 %}
Question Diagram
{% 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 %}
Question Diagram
{% 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 %}
Question Diagram
{% 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 %}
{% if exam.exam_mode == 'cbc' %}Grading Rubric{% else %}Marking Scheme{% endif %}
{% if marking_scheme.format == 'cbc_answer_keys_v1' %}
{% for row in marking_scheme.get('items', []) %} {% endfor %}
Question Expected Answer / Marking Points Marks
{{ row.question_id }} {{ row.answer_key }} {% if row.learning_outcome %}
{{ row.learning_outcome }}
{% endif %}
{{ row.marks }}
{% elif exam.exam_mode == 'cbc' and marking_scheme.rubric %}
{% for row in marking_scheme.rubric %} {% endfor %}
Skill Assessed Beginning (1) Developing (2) Proficient (3) Excellent (4)
{{ row.skill_assessed }} {{ row.beginning }} {{ row.developing }} {{ row.proficient }} {{ row.excellent }}
{% else %} {% for section_key, section_title in [('section_a', 'SECTION I'), ('section_b', 'SECTION II'), ('section_c', 'SECTION III')] %} {% set rows = marking_scheme.get(section_key, []) if marking_scheme else [] %} {% if rows %}
{{ section_title }}
{% for row in rows %}
Question {{ row.question_number or loop.index }} {{ row.total_marks or 0 }} marks
{% if row.marking_steps %}
    {% for step in row.marking_steps %}
  1. {% if step is mapping %} {{ step.step }} {% if step.marks is defined %} [{{ step.marks }}] {% endif %} {% else %} {{ step }} {% endif %}
  2. {% endfor %}
{% endif %} {% if row.alternative_answers %}
Alternative answers:
    {% for alt in row.alternative_answers %}
  • {{ alt }}
  • {% endfor %}
{% endif %}
{% endfor %} {% endif %} {% endfor %} {% endif %}
{% set report = marking_scheme.get('examiner_report') if marking_scheme else None %} {% if report %}
Examiner's Report
{% if report.topics_tested %}
Topics tested:
{{ report.topics_tested | join(', ') }}
{% endif %} {% if report.difficulty_analysis %}
Difficulty analysis:
{{ report.difficulty_analysis }}
{% endif %} {% if report.expected_performance %}
Expected performance:
{{ report.expected_performance }}
{% endif %} {% if report.time_advice %}
Timing:
{{ report.time_advice }}
{% endif %} {% if report.common_mistakes %}
Common mistakes to watch for:
    {% for m in report.common_mistakes %}
  • {{ m }}
  • {% endfor %}
{% endif %}
{% endif %} {% endblock %} {% block extra_js %} {% endblock %}