1
0
Fork 0
mirror of https://codeberg.org/Mo8it/AdvLabDB.git synced 2024-09-17 18:31:15 +00:00

Fixed navbar and register

This commit is contained in:
Mo 2021-04-01 14:08:42 +02:00
parent 4d8392b159
commit a91aed785c
3 changed files with 48 additions and 32 deletions

View file

@ -17,16 +17,32 @@ def util_processor():
items.append('<li><a class="dropdown-item" href="' + url_for("set_semester") + "?semester_id=" +
str(semester.id) + '">' + semester.label + '</a></li>')
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('<a class="nav-link' + active + '" href="' + titleToTemplate(page) + '">' + page + '</a>')
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()

View file

@ -22,12 +22,13 @@
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<div class="container-fluid">
<a class="navbar-brand" href="{{url_for('index')}}">AdvLabDB</a>
{% if title in pages %}
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbar">
<ul class="navbar-nav">
{% for item in navbarItems %}
{% for item in navbarItems(title) %}
<li class="nav-item">
{{item|safe}}
</li>
@ -44,6 +45,7 @@
</li>
</ul>
</div>
{% endif %}
</div>
</nav>
<div class="container-fluid">

View file

@ -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('<a class="nav-link' + active + '" href="' + lowerPage + '">' + page + '</a>')
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(" ", "_")