diff --git a/advlabdb/routes.py b/advlabdb/routes.py
index 127ba78..19f15e7 100644
--- a/advlabdb/routes.py
+++ b/advlabdb/routes.py
@@ -2,62 +2,12 @@ from flask import redirect, render_template, request, url_for, flash
from flask_security import auth_required, current_user
from advlabdb import app
-from advlabdb.models import Semester
-from advlabdb.utils import setUserActiveSemester, titleToTemplate, userActiveSemester
+from advlabdb.utils import setUserActiveSemester, userActiveSemester
@app.context_processor
def util_processor():
- def semesterDropDownItems():
- semesters = Semester.query.all()
- items = []
- for semester in semesters:
- items.append(
- '
'
- + semester.label
- + ""
- )
- return items
-
- def navbarItems(title):
- adminPages = []
- assistantPages = []
-
- if current_user.is_authenticated:
- roleNames = [role.name for role in current_user.roles]
- if "assistant" in roleNames:
- pages = assistantPages
- if "admin" in roleNames:
- for p in adminPages:
- if p not in pages:
- pages.append(p)
- elif "admin" in roleNames:
- pages = adminPages
-
- pages.append("Logout")
- else:
- pages = ["Login"]
-
- items = []
- for page in pages:
- if page == title:
- active = " active"
- else:
- active = ""
-
- items.append('' + page + "")
- return items
-
- return dict(
- semesterDropDownItems=semesterDropDownItems,
- userActiveSemester=userActiveSemester,
- navbarItems=navbarItems,
- current_user=current_user,
- )
+ return dict(userActiveSemester=userActiveSemester)
@app.route("/")
diff --git a/advlabdb/utils.py b/advlabdb/utils.py
index 1c14fa5..ebf9706 100644
--- a/advlabdb/utils.py
+++ b/advlabdb/utils.py
@@ -8,78 +8,14 @@ from advlabdb import db
from advlabdb.models import Semester
-def makeTable(headerAndDataList, rows, tableId="table"):
- def cellString(cell):
- cell = str(cell)
- if cell == "[]":
- return "None"
-
- excludeChars = """<>"'[]"""
- for c in excludeChars:
- if c in cell:
- cell = cell.replace(c, "")
- return cell
-
- def td(cell):
- return "" + cellString(cell) + " | "
-
- def th(cell):
- return '' + cellString(cell) + " | "
-
- table = (
- '''
-
-
- | """
- )
- for i in headerAndDataList:
- table += th(i[0])
- table += """
-
-\n"""
-
- for row in rows:
- table += " | "
-
- for i in headerAndDataList:
- table += td(eval(i[1]))
-
- table += "
\n"
-
- table += """
-
-
-
-
"""
- return table
-
-
-def appointmentDate(date):
- return date.strftime("%a %d.%m.%Y")
-
-
def randomPassword():
return "".join(choice(ascii_letters + digits) for i in range(12))
-def titleToTemplate(page):
- return page.lower().replace(" ", "_")
-
-
def userActiveSemester(flashWarning=False):
- lastSemesterId = Semester.query.all()[-1].id
+ lastSemesterId = (
+ Semester.query.order_by(Semester.year).order_by(Semester.id.desc()).first().id
+ ) # TODO: Check orders
if current_user.active_semester_id is None:
current_user.active_semester_id = lastSemesterId
db.session.commit()
@@ -87,23 +23,19 @@ def userActiveSemester(flashWarning=False):
activeSemester = Semester.query.get(current_user.active_semester_id)
if activeSemester:
if flashWarning:
- flash(f"You are in the old semester {activeSemester.label}!", "warning")
+ flash(f"You are in the old semester {activeSemester.repr()}!", "warning")
else:
current_user.active_semester_id = lastSemesterId
db.session.commit()
flash("Semester changed!", "warning")
+
return Semester.query.get(current_user.active_semester_id)
-def partFromLabelInUserActiveSemester(partLabel):
- for part in userActiveSemester().parts:
- if part.label == partLabel:
- return part
-
-
def setUserActiveSemester(semesterId):
if current_user.active_semester_id != semesterId:
- if Semester.query.get(semesterId):
+ semester = Semester.query.get(semesterId)
+ if semester:
try:
current_user.active_semester_id = semesterId
db.session.commit()
@@ -112,6 +44,6 @@ def setUserActiveSemester(semesterId):
db.session.rollback()
else:
- flash(f"Active semester changed to {Semester.query.get(semesterId).label}!", "warning")
+ flash(f"Active semester changed to {semester.repr()}!", "warning")
else:
flash(f"No semester with ID {semesterId}!", "error")