1
0
Fork 0
mirror of https://codeberg.org/Mo8it/AdvLabDB.git synced 2024-11-08 21:21:06 +00:00
AdvLabDB/advlabdb/model_dependent_funs.py
2022-06-01 23:02:17 +02:00

46 lines
1.5 KiB
Python

# Functions dependent on advlabdb.models
from flask import flash, url_for
from flask_admin.menu import MenuLink
from flask_security import current_user
from sqlalchemy import select
from . import app, db
from .models import Semester
def initActiveSemesterMenuLinks(space):
with app.app_context():
try:
semesters = Semester.sortedSemestersStartingWithNewest()
for semester in semesters:
space.add_link(
MenuLink(
name=str(semester),
url=url_for("set_semester") + "?semester_id=" + str(semester.id),
category="Active semester",
)
)
except Exception as ex:
print(
"ERROR: The Semester table does not exist yet! Therefore, menu links could not be generated. You can ignore this error if you are just initializing the database."
)
else:
space.add_link(MenuLink(name="Logout", url=url_for("security.logout")))
def reportBadAttempt(message):
print("BAD ATTEMPT:", message) # TODO: Log
def get_count(table):
return db.session.scalar(select(func.count()).select_from(table))
def active_semester_str():
active_semester = current_user.active_semester
active_semester_str = str(active_semester)
if active_semester != Semester.lastSemester():
flash(f"You are in the old semester {active_semester_str}!", "warning")
return active_semester_str