1
0
Fork 0
mirror of https://codeberg.org/Mo8it/AdvLabDB.git synced 2024-09-17 18:31:15 +00:00

Fixed semester changing and activeSemester

This commit is contained in:
Mo 2021-04-16 18:14:22 +02:00
parent 0f95b1ca35
commit 263ce65098
2 changed files with 18 additions and 14 deletions

View file

@ -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 + '</a></li>')
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,

View file

@ -35,7 +35,7 @@
{% if current_user.is_authenticated %}
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" id="navbarDropdownMenuLink" role="button" data-bs-toggle="dropdown" aria-expanded="false">
Semester {{activeSemesterLabel}}
Semester {{activeSemesterLabel()}}
</a>
<ul class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
{% for item in semesterDropDownItems() %}
@ -50,11 +50,11 @@
</nav>
<div class="container-fluid">
<br>
{% with messages = get_flashed_messages(with_categories=true) %}
{% with messages = get_flashed_messages(with_categories=True) %}
{% if messages %}
{% for category, message in messages %}
<div class="alert alert-{{category}}">
{{ message }}
{{message}}
</div>
{% endfor %}
{% endif %}