{% extends "base.html" %} {% block title %}Notes - Fireflies{% endblock %} {% block content %}

{{ _('Grades') }}

{{ _('Filter Grades') }}
{% if grades %}
{{ _('Overall Average Evolution') }}
{{ _('No grade data available') }}

{{ _('Your grade evolution chart will appear here once you have grades') }}

{{ _('Current Averages') }}
{{ _('Your Average') }} {{ overall_average }}/20
{{ _('Class Average') }} {{ latest_class_avg }}/20
{{ _('Minimum') }} {{ latest_min_avg }}/20
{{ _('Maximum') }} {{ latest_max_avg }}/20
{% if view_mode == 'chronological' %}
{{ _('List of Grades') }} {% if sort_order == 'date' %} ({{ _('chronological order') }}) {% elif sort_order == 'best_first' %} ({{ _('best first') }}) {% elif sort_order == 'worst_first' %} ({{ _('worst first') }}) {% endif %}
{{ grades|length }} {{ _('Grade') }}s
{% for grade in grades %} {% set percentage = 0 %} {% if grade.grade is defined and grade.out_of is defined %} {% set grade_float = grade.grade|default(0)|string|replace(',', '.') %} {% set out_of_float = grade.out_of|default(0)|string|replace(',', '.') %} {% if grade_float|float > 0 and out_of_float|float > 0 %} {% set percentage = (grade_float|float / out_of_float|float * 100)|round|int %} {% endif %} {% endif %} {% endfor %}
{{ _('Subject') }} {{ _('Grade') }} {{ _('Out of') }} {{ _('Coef.') }} {{ _('Percentage') }} {{ _('Date') }} {{ _('Comment') }}
{{ grade.subject }} {{ grade.grade }} {{ grade.out_of }} {{ grade.coefficient }}
{{ percentage }}%
{{ grade.date }} {% if grade.comment %} {% endif %}
{% else %}
{% for subject, data in subjects_data.items() %}

{% for grade in data.grades %} {% set percentage = 0 %} {% if grade.grade is defined and grade.out_of is defined %} {% set grade_float = grade.grade|default(0)|string|replace(',', '.') %} {% set out_of_float = grade.out_of|default(0)|string|replace(',', '.') %} {% if grade_float|float > 0 and out_of_float|float > 0 %} {% set percentage = (grade_float|float / out_of_float|float * 100)|round|int %} {% endif %} {% endif %} {% endfor %}
{{ _('Grade') }} {{ _('Out of') }} {{ _('Coef.') }} {{ _('Percentage') }} {{ _('Date') }} {{ _('Comment') }}
{{ grade.grade }} {{ grade.out_of }} {{ grade.coefficient }}
{{ percentage }}%
{{ grade.date }} {% if grade.comment %} {% endif %}
{% endfor %}
{% endif %}
{{ _('Grade Distribution') }}
{% set grade_ranges = { 'excellent': {'min': 80, 'max': 100, 'count': 0, 'color': 'success', 'label': _('Excellent')}, 'good': {'min': 60, 'max': 79, 'count': 0, 'color': 'info', 'label': _('Good')}, 'average': {'min': 40, 'max': 59, 'count': 0, 'color': 'warning', 'label': _('Average')}, 'poor': {'min': 0, 'max': 39, 'count': 0, 'color': 'danger', 'label': _('Poor')} } %} {% for grade in grades %} {% set percentage = 0 %} {% if grade.grade is defined and grade.out_of is defined %} {% set grade_float = grade.grade|default(0)|string|replace(',', '.') %} {% set out_of_float = grade.out_of|default(0)|string|replace(',', '.') %} {% if grade_float|float > 0 and out_of_float|float > 0 %} {% set percentage = (grade_float|float / out_of_float|float * 100)|round|int %} {% endif %} {% endif %} {% if percentage >= 80 %} {% set _ = grade_ranges.excellent.update({'count': grade_ranges.excellent.count + 1}) %} {% elif percentage >= 60 %} {% set _ = grade_ranges.good.update({'count': grade_ranges.good.count + 1}) %} {% elif percentage >= 40 %} {% set _ = grade_ranges.average.update({'count': grade_ranges.average.count + 1}) %} {% else %} {% set _ = grade_ranges.poor.update({'count': grade_ranges.poor.count + 1}) %} {% endif %} {% endfor %}
{% for range_name, range_data in grade_ranges.items() %}
{{ range_data.label }} ({{ range_data.min }}-{{ range_data.max }}%) {{ range_data.count }}
{{ (range_data.count / grades|length * 100)|round|int if grades|length > 0 else 0 }}%
{% endfor %}
{{ _('Grade Statistics') }}
{% set total_percentage = 0 %} {% set valid_grades = 0 %} {% set highest = {'subject': '', 'percentage': 0} %} {% set lowest = {'subject': '', 'percentage': 100} %} {% for grade in grades %} {% set percentage = 0 %} {% if grade.grade is defined and grade.out_of is defined %} {% set grade_float = grade.grade|default(0)|string|replace(',', '.') %} {% set out_of_float = grade.out_of|default(0)|string|replace(',', '.') %} {% if grade_float|float > 0 and out_of_float|float > 0 %} {% set percentage = (grade_float|float / out_of_float|float * 100)|round|int %} {% endif %} {% endif %} {% if percentage > 0 %} {% set total_percentage = total_percentage + percentage %} {% set valid_grades = valid_grades + 1 %} {% if percentage > highest.percentage %} {% set _ = highest.update({'subject': grade.subject, 'percentage': percentage}) %} {% endif %} {% if percentage < lowest.percentage %} {% set _ = lowest.update({'subject': grade.subject, 'percentage': percentage}) %} {% endif %} {% endif %} {% endfor %} {% set average = (total_percentage / valid_grades)|round|int if valid_grades > 0 else 0 %}

{{ average }}%

{{ _('Average') }}

{{ highest.percentage }}%

{{ _('Maximum') }}

{{ highest.subject }}
{{ _('Best Subject') }}
{{ lowest.subject }}
{{ _('Needs Improvement') }}
{% else %}

{{ _('No grades found for the selected period') }}

{{ _('Try selecting a different period') }}

{% endif %} {% endblock %} {% block scripts %} {% endblock %}