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")