diff --git a/nateman/blueprints/klausuren.py b/nateman/blueprints/klausuren.py index 2a6e815..803b6fb 100644 --- a/nateman/blueprints/klausuren.py +++ b/nateman/blueprints/klausuren.py @@ -34,7 +34,7 @@ bp = Blueprint("klausuren", __name__, url_prefix="/klausuren") @login_required def mine(): """ Ansicht der eigenen Klausuren (Seite *Meine Klausuren*) """ - klausur_query = Klausur.query.filter(Klausur.lehrer == g.lehrer).order_by(Klausur.date.desc()) + klausur_query = Klausur.query.filter(Klausur.lehrer == g.lehrer).order_by(Klausur.date) klausuren_anstehend = klausur_query.filter(Klausur.date > datetime.now().date()).all() klausuren_vergangen = klausur_query.filter(Klausur.date <= datetime.now().date()).all() @@ -74,12 +74,23 @@ def stufe_(stufe_name): abort(404) return - dates_query = db.session.query(Klausur.date).filter_by(stufe=stufe).order_by(Klausur.date.desc()) - dates_anstehend = [t.date for t in dates_query.filter(Klausur.date > datetime.now().date()).distinct()] - dates_vergangen = [t.date for t in dates_query.filter(Klausur.date <= datetime.now().date()).distinct()] + desc_order = request.args.get("order") == "desc" + if desc_order: + order = Klausur.date.desc() + else: + order = Klausur.date.asc() + + dates_query = db.session.query(Klausur.date).filter_by(stufe=stufe).order_by(order) + dates_anstehend = [t.date for t in dates_query.filter( + (Klausur.date > datetime.now().date()) if desc_order else (Klausur.date >= datetime.now().date()) + ).distinct()] + + dates_vergangen = [t.date for t in dates_query.filter( + (Klausur.date <= datetime.now().date()) if desc_order else (Klausur.date < datetime.now().date()) + ).distinct()] return render_template("klausuren/stufe.html.j2", stufe=stufe, dates_anstehend=dates_anstehend, - dates_vergangen=dates_vergangen) + dates_vergangen=dates_vergangen, desc_order=desc_order) @bp.route("//add", methods=("GET", "POST")) diff --git a/nateman/emails.py b/nateman/emails.py index 9d2937d..74a533d 100644 --- a/nateman/emails.py +++ b/nateman/emails.py @@ -115,7 +115,7 @@ def send_reminder_mails() -> int: for lehrer in Lehrer.query.all(): not_edited_list = Klausur.query \ .filter(and_(Klausur.date <= datetime.now().date(), Klausur.lehrer == lehrer, ~Klausur.edited)) \ - .order_by(Klausur.date.desc()).all() + .order_by(Klausur.date).all() if len(not_edited_list) == 0: continue diff --git a/nateman/templates/klausuren/stufe.html.j2 b/nateman/templates/klausuren/stufe.html.j2 index 61bdc33..ded6c00 100644 --- a/nateman/templates/klausuren/stufe.html.j2 +++ b/nateman/templates/klausuren/stufe.html.j2 @@ -25,6 +25,7 @@ {# stufe #} {# dates_anstehend #} {# dates_vergangen #} +{# desc_order #} {% set lehrer_can_access = g.lehrer is not none and g.lehrer.can_access(stufe) %} {% set klausur_count = dates_anstehend | length + dates_vergangen | length %} {% set beratungslehrer_list = Lehrer.query.filter_by(beraet=stufe).all() %} @@ -48,13 +49,23 @@ {% endif %} {% if klausur_count != 0 %} -

zu heute springen

+

+ zu heute springen + · + {% if desc_order %} + aufsteigend sortieren + {% else %} + {# + #}absteigend sortieren + + {% endif %} +

{% endif %} {% if klausur_count == 0 %}

keine

{% else %} - {% for dates_list in (dates_anstehend, dates_vergangen) %} + {% for dates_list in ((dates_anstehend, dates_vergangen) if desc_order else (dates_vergangen, dates_anstehend)) %} {% if loop.index0 == 1 %}
heute ({{ macros.date(datetime.now()) }})
{% endif %}