From 263ce65098bd35f1ebe68f0743e337099ac41dc7 Mon Sep 17 00:00:00 2001 From: Mo8it Date: Fri, 16 Apr 2021 18:14:22 +0200 Subject: [PATCH] Fixed semester changing and activeSemester --- advlabdb/routes.py | 26 +++++++++++++++----------- advlabdb/templates/layout.html | 6 +++--- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/advlabdb/routes.py b/advlabdb/routes.py index f3b07b3..78063fd 100644 --- a/advlabdb/routes.py +++ b/advlabdb/routes.py @@ -1,13 +1,11 @@ from advlabdb import app, user_datastore -from flask import render_template, request, url_for, flash, redirect +from flask import render_template, request, url_for, flash, redirect, session from flask_security import auth_required, roles_required, hash_password, current_user from advlabdb.utils import * from advlabdb.models import * from advlabdb.forms import * -activeSemester_id = 0 - @app.context_processor def util_processor(): @@ -19,6 +17,15 @@ def util_processor(): str(semester.id) + '">' + semester.label + '') return items + def activeSemesterLabel(): + lastSemesterId = Semester.query.all()[-1].id + if "activeSemesterId" not in session: + session["activeSemesterId"] = lastSemesterId + elif session["activeSemesterId"] != lastSemesterId: + flash(f"Warning: You are in the old semester {Semester.query.get(session['activeSemesterId']).label}!", + "danger") + return Semester.query.get(session["activeSemesterId"]).label + def navbarItems(title): adminPages = ["Students", "Assistants", "Experiments", "Appointments", "Groups", "Users", "Semesters"] assistantPages = ["Students", "Assistants", "Experiments", "Appointments", "Groups"] @@ -49,7 +56,7 @@ def util_processor(): return items return dict(semesterDropDownItems=semesterDropDownItems, - activeSemesterLabel=Semester.query.get(activeSemester_id).label, + activeSemesterLabel=activeSemesterLabel, navbarItems=navbarItems, current_user=current_user, ) @@ -57,8 +64,6 @@ def util_processor(): @app.route("/") def index(): - global activeSemester_id - activeSemester_id = Semester.query.all()[-1].id title = "Index" return render_template(titleToTemplate(title) + ".html", title=title, @@ -68,7 +73,7 @@ def index(): @app.route("/students") @roles_required("admin") def students(): - semester = Semester.query.get(activeSemester_id) + semester = Semester.query.get(session["activeSemesterId"]) parts = semester.parts tables = [] tablesLabels = [] @@ -124,7 +129,7 @@ def assistants(): @app.route("/experiments") @roles_required("admin") def experiments(): - semester = Semester.query.get(activeSemester_id) + semester = Semester.query.get(session["activeSemesterId"]) parts = semester.parts tables = [] tablesLabels = [] @@ -159,7 +164,7 @@ def appointments(): @app.route("/groups") @roles_required("admin") def groups(): - semester = Semester.query.get(activeSemester_id) + semester = Semester.query.get(session["activeSemesterId"]) parts = semester.parts tables = [] tablesLabels = [] @@ -203,8 +208,7 @@ def users(): @app.route("/set_semester", methods=["GET"]) @auth_required() def set_semester(): - global activeSemester_id - activeSemester_id = int(request.args.get("semester_id")) + session["activeSemesterId"] = int(request.args.get("semester_id")) title = "Index" return render_template(titleToTemplate(title) + ".html", title=title, diff --git a/advlabdb/templates/layout.html b/advlabdb/templates/layout.html index 29d8a49..dd81bd6 100644 --- a/advlabdb/templates/layout.html +++ b/advlabdb/templates/layout.html @@ -35,7 +35,7 @@ {% if current_user.is_authenticated %}