diff --git a/advlabdb/routes.py b/advlabdb/routes.py index dcdf7b7..a4497d7 100644 --- a/advlabdb/routes.py +++ b/advlabdb/routes.py @@ -17,16 +17,32 @@ def util_processor(): items.append('
  • ' + semester.label + '
  • ') return items + + pages = ["Index", "Students", "Assistants", "Experiments", "Appointments", "Groups", "Users", "Semesters"] + + def navbarItems(title): + items = [] + for page in pages[1:]: + if page == title: + active = " active" + else: + active = "" + + items.append('' + page + '') + return items + return dict(semesterDropDownItems=semesterDropDownItems, - activeSemesterLabel=Semester.query.get(activeSemester_id).label) + activeSemesterLabel=Semester.query.get(activeSemester_id).label, + pages=pages, + navbarItems=navbarItems) @app.route("/") def index(): global activeSemester_id activeSemester_id = Semester.query.all()[-1].id - page = "index" - return render_template(page + ".html", navbarItems=navbarItems(page)) + title = "Index" + return render_template(titleToTemplate(title) + ".html", title=title) @app.route("/students") @@ -52,8 +68,8 @@ def students(): tablesLabels.append("Part " + part.label + ":") tables.append(makeTable(headerAndDataList=headerAndDataList, rows=part.part_students)) - page = "students" - return render_template(page + ".html", navbarItems=navbarItems(page), + title = "Students" + return render_template(titleToTemplate(title) + ".html", title=title, tables=tables, tablesLabels=tablesLabels) @@ -73,8 +89,8 @@ def assistants(): table = makeTable(headerAndDataList=headerAndDataList, rows=Assistant.query.filter(Assistant.user_id != None).all()) - page = "assistants" - return render_template(page + ".html", navbarItems=navbarItems(page), + title = "Assistants" + return render_template(titleToTemplate(title) + ".html", title=title, table=table) @@ -95,15 +111,15 @@ def experiments(): tables.append(makeTable(headerAndDataList=headerAndDataList, rows=part.part_experiments)) - page = "experiments" - return render_template(page + ".html", navbarItems=navbarItems(page), + title = "Experiments" + return render_template(titleToTemplate(title) + ".html", title=title, tables=tables, tablesLabels=tablesLabels) @app.route("/appointments") def appointments(): - page = "appointments" - return render_template(page + ".html", navbarItems=navbarItems(page)) + title = "Appointments" + return render_template(titleToTemplate(title) + ".html", title=title) @app.route("/groups") @@ -124,8 +140,8 @@ def groups(): tables.append(makeTable(headerAndDataList=headerAndDataList, rows=part.groups)) - page = "groups" - return render_template(page + ".html", navbarItems=navbarItems(page), + title = "Groups" + return render_template(titleToTemplate(title) + ".html", title=title, tables=tables, tablesLabels=tablesLabels) @@ -138,8 +154,8 @@ def users(): table = makeTable(headerAndDataList=headerAndDataList, rows=User.query.all()) - page = "users" - return render_template(page + ".html", navbarItems=navbarItems(page), + title = "Users" + return render_template(titleToTemplate(title) + ".html", title=title, table=table) @@ -147,8 +163,8 @@ def users(): def set_semester(): global activeSemester_id activeSemester_id = int(request.args.get("semester_id")) - page = "index" - return render_template(page + ".html", navbarItems=navbarItems(page)) + title = "Index" + return render_template(titleToTemplate(title) + ".html", title=title) @app.route("/semesters") @@ -159,8 +175,8 @@ def semesters(): table = makeTable(headerAndDataList=headerAndDataList, rows=Semester.query.all()) - page = "semesters" - return render_template(page + ".html", navbarItems=navbarItems(page), + title = "Semesters" + return render_template(titleToTemplate(title) + ".html", title=title, table=table) @@ -169,9 +185,11 @@ def register(): form = RegistrationForm() if form.validate_on_submit(): password = randomPassword() - passwordHash = generate_password_hash(password).decode("utf-8") + passwordHash = generate_password_hash(password) + email = form.email.data admin = form.admin.data + user = User(email=email, password_hash=passwordHash, is_admin=admin) db.session.add(user) db.session.commit() diff --git a/advlabdb/templates/layout.html b/advlabdb/templates/layout.html index e65ccbd..d258f97 100644 --- a/advlabdb/templates/layout.html +++ b/advlabdb/templates/layout.html @@ -22,12 +22,13 @@
    diff --git a/advlabdb/utils.py b/advlabdb/utils.py index a498e19..6fbecdb 100644 --- a/advlabdb/utils.py +++ b/advlabdb/utils.py @@ -1,13 +1,5 @@ -def navbarItems(activePage): - pages = ["Students", "Assistants", "Experiments", "Appointments", "Groups", "Users", "Semesters"] - items = [] - for page in pages: - active = "" - lowerPage = page.lower().replace(" ", "_") - if lowerPage == activePage: - active = " active" - items.append('' + page + '') - return items +from random import choice +from string import digits, ascii_letters def makeTable(headerAndDataList, rows): def cellString(cell): @@ -64,4 +56,8 @@ def appointmentDate(date): def randomPassword(): - return ''.join(random.choice(string.ascii_letters + string.digits) for i in range(12)) + return ''.join(choice(ascii_letters + digits) for i in range(12)) + + +def titleToTemplate(page): + return page.lower().replace(" ", "_")