Topic Scores Report

Teacher: {{ teacher_name }}

Generated: {{ generated_date.strftime('%B %d, %Y at %I:%M %p') }}

Report Filters

Topic: {% if selected_topic_id %} {% for topic in topics %} {% if topic.id == selected_topic_id %}{{ topic.title }}{% endif %} {% endfor %} {% else %} All Topics {% endif %}

Content Type: {% if selected_content_type == 'all' %}All Types {% else %}{{ selected_content_type.title() }}{% endif %}

{% if student_scores %} {% if not selected_topic_id %} {% endif %} {% for student_id, student_data in student_scores.items() %} {% if not selected_topic_id %} {% endif %} {% endfor %}
Student Name Email Total Submissions Average ScoreTopics Completed
{{ student_data.student.username }} {{ student_data.student.email }} {{ student_data.total_submissions }} {% set score = student_data.total_score %} {{ score }}% {{ student_data.topics|length }}

Summary Statistics

{% set total_students = student_scores|length %} {% set all_scores = [] %} {% for student_id, student_data in student_scores.items() %} {% set _ = all_scores.append(student_data.total_score) %} {% endfor %} {% if all_scores %} {% set avg_score = (all_scores|sum / all_scores|length)|round(2) %} {% set max_score = all_scores|max %} {% set min_score = all_scores|min %}

Total Students: {{ total_students }}

Class Average: {{ avg_score }}%

Highest Score: {{ max_score }}%

Lowest Score: {{ min_score }}%

{% set excellent_count = all_scores|selectge(85)|list|length %} {% set good_count = all_scores|select('>=', 70)|select('<', 85)|list|length %} {% set average_count = all_scores|select('>=', 50)|select('<', 70)|list|length %} {% set poor_count = all_scores|select('<', 50)|list|length %}

Grade Distribution:

{% endif %}
{% else %}

No Data Available

No reviewed submissions found for the selected criteria.

{% endif %}