diff --git a/nateman/blueprints/schueler.py b/nateman/blueprints/schueler.py index 8e4c1e6..5db0ee3 100644 --- a/nateman/blueprints/schueler.py +++ b/nateman/blueprints/schueler.py @@ -33,19 +33,20 @@ bp = Blueprint("schueler", __name__, url_prefix="/schueler") def versaeumnisse(): """ Versäumnisliste (Seite *Versäumnisse*) """ if request.method != "POST": - versaeumt_dict: Dict[Stufe, Tuple[List[Klausurteilnahme], List[Klausurteilnahme]]] = {} + klausur_dict: Dict[Stufe, Tuple[List[Klausurteilnahme], List[Klausurteilnahme]]] = {} for stufe in g.lehrer.accessible_stufen(): - base_query = Klausurteilnahme.query.join(Schueler).join(Klausur) \ + base_query = Klausur.query.join(Klausurteilnahme) \ .filter(Klausurteilnahme.versaeumt) \ .filter(Klausur.stufe == stufe) \ - .order_by(Schueler.nachname, Schueler.vorname) + .group_by(Klausur) \ + .order_by(Klausur.date) - versaeumt_dict[stufe] = ( + klausur_dict[stufe] = ( base_query.filter(~Klausurteilnahme.nachgeschrieben).all(), base_query.filter(Klausurteilnahme.nachgeschrieben).all(), ) - return render_template("schueler/versaeumnisse.html.j2", versaeumt_dict=versaeumt_dict) + return render_template("schueler/versaeumnisse.html.j2", klausur_dict=klausur_dict) # ELSE diff --git a/nateman/templates/schueler/versaeumnisse.html.j2 b/nateman/templates/schueler/versaeumnisse.html.j2 index 5f4e802..5861936 100644 --- a/nateman/templates/schueler/versaeumnisse.html.j2 +++ b/nateman/templates/schueler/versaeumnisse.html.j2 @@ -23,17 +23,17 @@ {% block header %}Versäumnisse{% endblock %} {# - versaeumt_dict: Dictinonary mit jeweils eimem Tupel aus zwei Listen aller nicht nachgeschriebenen bzw. - nachgeschriebenen versäumten Klausurteilnahmen pro Stufe, auf die der angemeldete Lehrer Zugriff hat + klausur_dict: Dictinonary mit jeweils eimem Tupel aus zwei Listen aller Klausuren mit nicht nachgeschriebenen bzw. + nachgeschriebenen versäumten Klausurteilnahmen pro Stufe, auf die der angemeldete Lehrer Zugriff hat #} {% block content %}
- {% for stufe, versaeumt_listen in versaeumt_dict.items() %} + {% for stufe, klausur_listen in klausur_dict.items() %}

{{ stufe.name }}

- {% for versaeumt_list in versaeumt_listen %} + {% for klausur_list in klausur_listen %}

{% if loop.first %} noch nicht nachgeschrieben: @@ -41,18 +41,19 @@ bereits nachgeschrieben: {% endif %}

- {% if versaeumt_list|length == 0 %} + {% if klausur_list|length == 0 %}

keine

{% else %} + - - + + @@ -61,28 +62,43 @@ + - {% for kt in versaeumt_list %} - - - - - - + {% for klausur in klausur_list %} + {% set kt_list = Klausurteilnahme.query.filter_by(klausur=klausur, versaeumt=true).all() %} + {% for kt in kt_list %} + + {% if loop.first %} + + + + + + {% if kt.klausur.annotation is not none %} + + {% else %} + + {% endif %} + {% endif %} - {% if kt.klausur.annotation is not none %} - - {% else %} - - {% endif %} - - - - + + + + + {% endfor %} {% endfor %}
Klausur Schüler/SchülerinKlausur Status
DatumIDDatum Kurs Lehrkraft Längenachgeschrieben
{{ kt.schueler.nachname }}, {{ kt.schueler.vorname }} - ({{ kt.schueler.id }}{% if kt.schueler.koop %}, Koop{% endif %}) - {{ macros.date(kt.klausur.date) }}{{ kt.klausur.kursname }}{{ kt.klausur.lehrer.kuerzel }}{{ kt.klausur.laenge }}
+ + {{ klausur.id }} + + {{ macros.date(klausur.date) }}{{ klausur.kursname }}{{ klausur.lehrer.kuerzel }}{{ klausur.laenge }}{{ kt.klausur.annotation }}keine{{ kt.klausur.annotation }}keine
+ {{ kt.schueler.nachname }}, {{ kt.schueler.vorname }} + ({{ kt.schueler.id }}{% if kt.schueler.koop %}, Koop{% endif %}) + + + + +