from flask import flash, redirect, render_template, request, url_for
from flask_security import auth_required, current_user, roles_accepted, roles_required
from . import app, db
from .model_dependent_funs import active_semester_repr
from .models import Semester
@app.context_processor
def util_processor():
author_email = "mo8it@proton.me"
footer = f"
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 to Mo Bitar: {author_email}
"
return dict(active_semester_repr=active_semester_repr, current_user=current_user, footer=footer)
@app.route("/")
def index():
if current_user.has_role("admin"):
return redirect(url_for("index") + "admin")
elif current_user.has_role("assistant"):
return redirect(url_for("index") + "assistant")
else:
return redirect(url_for("security.login"))
@app.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("index")
return redirect(red)
@app.route("/admin/docs")
@roles_required("admin")
def admin_docs():
return render_template("docs/admin.html")
@app.route("/assistant/docs")
@roles_accepted("admin", "assistant")
def assistant_docs():
return render_template("docs/assistant.html")