mirror of
https://codeberg.org/Mo8it/AdvLabDB.git
synced 2025-04-10 20:48:36 +00:00
Fixed navbar and register
This commit is contained in:
parent
4d8392b159
commit
a91aed785c
3 changed files with 48 additions and 32 deletions
advlabdb
|
@ -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()
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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(" ", "_")
|
||||
|
|
Loading…
Add table
Reference in a new issue