1
0
Fork 0
mirror of https://codeberg.org/Mo8it/AdvLabDB.git synced 2024-09-19 18:31:16 +00:00
AdvLabDB/advlabdb/routes.py
2022-08-15 22:22:36 +02:00

48 lines
1.6 KiB
Python

from flask import Blueprint, flash, redirect, request, url_for
from flask_login import current_user
from flask_security.decorators import auth_required
from .model_dependent_funs import active_semester_str
from .models import Semester, db
bp = Blueprint("main", __name__, root_path="/", template_folder="templates")
@bp.app_context_processor
def util_processor():
author_email = "mobitar@students.uni-mainz.de"
footer = f"<hr><p style='font-size:14px;'>This website is still under development (beta release)! If you have any questions, find any bugs or want some feature, please write a formless email (german/english) to Mo Bitar: <a href='mailto:{author_email}'>{author_email}</a>. Feedback is also welcome :)</p><br>"
return dict(active_semester_str=active_semester_str, current_user=current_user, footer=footer)
@bp.route("/")
def index():
if current_user.has_role("admin"):
endpoint_base = "admin"
elif current_user.has_role("assistant"):
endpoint_base = "assistant"
else:
return redirect(url_for("security.login"))
if current_user.login_count == 1:
url = url_for(endpoint_base + "_docs.index")
else:
url = url_for(endpoint_base + ".index")
return redirect(url)
@bp.route("/set_semester")
@auth_required()
def set_semester():
try:
semesterId = int(request.args.get("semester_id"))
except Exception as ex:
flash(str(ex), "error")
else:
semester = db.session.get(Semester, semesterId)
current_user.setActiveSemester(semester)
red = request.referrer or url_for("main.index")
return redirect(red)