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

49 lines
1.6 KiB
Python
Raw Normal View History

2021-07-30 12:20:54 +00:00
from flask import flash, redirect, render_template, request, url_for
2022-02-13 18:58:05 +00:00
from flask_security import auth_required, current_user, roles_accepted, roles_required
2021-04-03 00:11:26 +00:00
from . import app, db
2022-06-01 20:53:23 +00:00
from .model_dependent_funs import active_semester_str
from .models import Semester
2021-03-18 13:53:55 +00:00
2021-03-31 23:04:21 +00:00
2021-03-20 14:41:22 +00:00
@app.context_processor
def util_processor():
2022-06-17 20:24:23 +00:00
author_email = "mobitar@students.uni-mainz.de"
2022-06-27 20:09:17 +00:00
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>"
2022-06-01 20:53:23 +00:00
return dict(active_semester_str=active_semester_str, current_user=current_user, footer=footer)
2021-03-20 14:41:22 +00:00
2021-03-31 23:04:21 +00:00
2021-03-18 13:53:55 +00:00
@app.route("/")
def index():
2021-05-17 20:15:50 +00:00
if current_user.has_role("admin"):
2022-05-30 16:09:19 +00:00
url = url_for("index") + "admin"
if current_user.login_count == 1:
url += "/docs"
return redirect(url)
2021-05-17 20:15:50 +00:00
elif current_user.has_role("assistant"):
2022-05-30 16:09:19 +00:00
url = url_for("index") + "assistant"
if current_user.login_count == 1:
url += "/docs"
return redirect(url)
2021-05-17 20:15:50 +00:00
else:
2021-09-11 19:20:36 +00:00
return redirect(url_for("security.login"))
2021-05-17 20:36:24 +00:00
2021-06-09 00:51:26 +00:00
@app.route("/set_semester")
@auth_required()
def set_semester():
2021-07-11 11:48:13 +00:00
try:
semesterId = int(request.args.get("semester_id"))
except Exception as ex:
flash(str(ex), "error")
else:
semester = db.session.get(Semester, semesterId)
2022-05-29 19:41:01 +00:00
current_user.setActiveSemester(semester)
2021-07-11 11:48:13 +00:00
red = request.referrer or url_for("index")
return redirect(red)