Option für Klausursortierung hinzugefügt

This commit is contained in:
2021-09-24 16:28:01 +02:00
parent 9b73706521
commit ef97dfce31
3 changed files with 30 additions and 8 deletions
+16 -5
View File
@@ -34,7 +34,7 @@ bp = Blueprint("klausuren", __name__, url_prefix="/klausuren")
@login_required @login_required
def mine(): def mine():
""" Ansicht der eigenen Klausuren (Seite *Meine Klausuren*) """ """ 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_anstehend = klausur_query.filter(Klausur.date > datetime.now().date()).all()
klausuren_vergangen = 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) abort(404)
return return
dates_query = db.session.query(Klausur.date).filter_by(stufe=stufe).order_by(Klausur.date.desc()) desc_order = request.args.get("order") == "desc"
dates_anstehend = [t.date for t in dates_query.filter(Klausur.date > datetime.now().date()).distinct()] if desc_order:
dates_vergangen = [t.date for t in dates_query.filter(Klausur.date <= datetime.now().date()).distinct()] 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, 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("/<stufe_name>/add", methods=("GET", "POST")) @bp.route("/<stufe_name>/add", methods=("GET", "POST"))
+1 -1
View File
@@ -115,7 +115,7 @@ def send_reminder_mails() -> int:
for lehrer in Lehrer.query.all(): for lehrer in Lehrer.query.all():
not_edited_list = Klausur.query \ not_edited_list = Klausur.query \
.filter(and_(Klausur.date <= datetime.now().date(), Klausur.lehrer == lehrer, ~Klausur.edited)) \ .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: if len(not_edited_list) == 0:
continue continue
+13 -2
View File
@@ -25,6 +25,7 @@
{# stufe #} {# stufe #}
{# dates_anstehend #} {# dates_anstehend #}
{# dates_vergangen #} {# dates_vergangen #}
{# desc_order #}
{% set lehrer_can_access = g.lehrer is not none and g.lehrer.can_access(stufe) %} {% 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 klausur_count = dates_anstehend | length + dates_vergangen | length %}
{% set beratungslehrer_list = Lehrer.query.filter_by(beraet=stufe).all() %} {% set beratungslehrer_list = Lehrer.query.filter_by(beraet=stufe).all() %}
@@ -48,13 +49,23 @@
{% endif %} {% endif %}
{% if klausur_count != 0 %} {% if klausur_count != 0 %}
<p><a href="#heute" data-icon="&#xf103;">zu heute springen</a></p> <p>
<a href="#heute" data-icon="&#xf103;">zu heute springen</a>
&middot;
{% if desc_order %}
<a href="{{ url_for('klausuren.stufe', stufe_name=stufe.name) }}" data-icon="&#xf162;">aufsteigend sortieren</a>
{% else %}
<a href="{{ url_for('klausuren.stufe', stufe_name=stufe.name, order='desc') }}" data-icon="&#xf886;">{#
#}absteigend sortieren
</a>
{% endif %}
</p>
{% endif %} {% endif %}
{% if klausur_count == 0 %} {% if klausur_count == 0 %}
<p>keine</p> <p>keine</p>
{% else %} {% 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 %} {% if loop.index0 == 1 %}
<div id="heute" class="labeled-hr" data-icon="&#xf073;">heute ({{ macros.date(datetime.now()) }})</div> <div id="heute" class="labeled-hr" data-icon="&#xf073;">heute ({{ macros.date(datetime.now()) }})</div>
{% endif %} {% endif %}