mirror of
https://codeberg.org/Mo8it/AdvLabDB.git
synced 2024-09-19 18:31:16 +00:00
Fixed semester changing and activeSemester
This commit is contained in:
parent
0f95b1ca35
commit
263ce65098
2 changed files with 18 additions and 14 deletions
|
@ -1,13 +1,11 @@
|
||||||
from advlabdb import app, user_datastore
|
from advlabdb import app, user_datastore
|
||||||
from flask import render_template, request, url_for, flash, redirect
|
from flask import render_template, request, url_for, flash, redirect, session
|
||||||
from flask_security import auth_required, roles_required, hash_password, current_user
|
from flask_security import auth_required, roles_required, hash_password, current_user
|
||||||
|
|
||||||
from advlabdb.utils import *
|
from advlabdb.utils import *
|
||||||
from advlabdb.models import *
|
from advlabdb.models import *
|
||||||
from advlabdb.forms import *
|
from advlabdb.forms import *
|
||||||
|
|
||||||
activeSemester_id = 0
|
|
||||||
|
|
||||||
|
|
||||||
@app.context_processor
|
@app.context_processor
|
||||||
def util_processor():
|
def util_processor():
|
||||||
|
@ -19,6 +17,15 @@ def util_processor():
|
||||||
str(semester.id) + '">' + semester.label + '</a></li>')
|
str(semester.id) + '">' + semester.label + '</a></li>')
|
||||||
return items
|
return items
|
||||||
|
|
||||||
|
def activeSemesterLabel():
|
||||||
|
lastSemesterId = Semester.query.all()[-1].id
|
||||||
|
if "activeSemesterId" not in session:
|
||||||
|
session["activeSemesterId"] = lastSemesterId
|
||||||
|
elif session["activeSemesterId"] != lastSemesterId:
|
||||||
|
flash(f"Warning: You are in the old semester {Semester.query.get(session['activeSemesterId']).label}!",
|
||||||
|
"danger")
|
||||||
|
return Semester.query.get(session["activeSemesterId"]).label
|
||||||
|
|
||||||
def navbarItems(title):
|
def navbarItems(title):
|
||||||
adminPages = ["Students", "Assistants", "Experiments", "Appointments", "Groups", "Users", "Semesters"]
|
adminPages = ["Students", "Assistants", "Experiments", "Appointments", "Groups", "Users", "Semesters"]
|
||||||
assistantPages = ["Students", "Assistants", "Experiments", "Appointments", "Groups"]
|
assistantPages = ["Students", "Assistants", "Experiments", "Appointments", "Groups"]
|
||||||
|
@ -49,7 +56,7 @@ def util_processor():
|
||||||
return items
|
return items
|
||||||
|
|
||||||
return dict(semesterDropDownItems=semesterDropDownItems,
|
return dict(semesterDropDownItems=semesterDropDownItems,
|
||||||
activeSemesterLabel=Semester.query.get(activeSemester_id).label,
|
activeSemesterLabel=activeSemesterLabel,
|
||||||
navbarItems=navbarItems,
|
navbarItems=navbarItems,
|
||||||
current_user=current_user,
|
current_user=current_user,
|
||||||
)
|
)
|
||||||
|
@ -57,8 +64,6 @@ def util_processor():
|
||||||
|
|
||||||
@app.route("/")
|
@app.route("/")
|
||||||
def index():
|
def index():
|
||||||
global activeSemester_id
|
|
||||||
activeSemester_id = Semester.query.all()[-1].id
|
|
||||||
title = "Index"
|
title = "Index"
|
||||||
return render_template(titleToTemplate(title) + ".html",
|
return render_template(titleToTemplate(title) + ".html",
|
||||||
title=title,
|
title=title,
|
||||||
|
@ -68,7 +73,7 @@ def index():
|
||||||
@app.route("/students")
|
@app.route("/students")
|
||||||
@roles_required("admin")
|
@roles_required("admin")
|
||||||
def students():
|
def students():
|
||||||
semester = Semester.query.get(activeSemester_id)
|
semester = Semester.query.get(session["activeSemesterId"])
|
||||||
parts = semester.parts
|
parts = semester.parts
|
||||||
tables = []
|
tables = []
|
||||||
tablesLabels = []
|
tablesLabels = []
|
||||||
|
@ -124,7 +129,7 @@ def assistants():
|
||||||
@app.route("/experiments")
|
@app.route("/experiments")
|
||||||
@roles_required("admin")
|
@roles_required("admin")
|
||||||
def experiments():
|
def experiments():
|
||||||
semester = Semester.query.get(activeSemester_id)
|
semester = Semester.query.get(session["activeSemesterId"])
|
||||||
parts = semester.parts
|
parts = semester.parts
|
||||||
tables = []
|
tables = []
|
||||||
tablesLabels = []
|
tablesLabels = []
|
||||||
|
@ -159,7 +164,7 @@ def appointments():
|
||||||
@app.route("/groups")
|
@app.route("/groups")
|
||||||
@roles_required("admin")
|
@roles_required("admin")
|
||||||
def groups():
|
def groups():
|
||||||
semester = Semester.query.get(activeSemester_id)
|
semester = Semester.query.get(session["activeSemesterId"])
|
||||||
parts = semester.parts
|
parts = semester.parts
|
||||||
tables = []
|
tables = []
|
||||||
tablesLabels = []
|
tablesLabels = []
|
||||||
|
@ -203,8 +208,7 @@ def users():
|
||||||
@app.route("/set_semester", methods=["GET"])
|
@app.route("/set_semester", methods=["GET"])
|
||||||
@auth_required()
|
@auth_required()
|
||||||
def set_semester():
|
def set_semester():
|
||||||
global activeSemester_id
|
session["activeSemesterId"] = int(request.args.get("semester_id"))
|
||||||
activeSemester_id = int(request.args.get("semester_id"))
|
|
||||||
title = "Index"
|
title = "Index"
|
||||||
return render_template(titleToTemplate(title) + ".html",
|
return render_template(titleToTemplate(title) + ".html",
|
||||||
title=title,
|
title=title,
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
{% if current_user.is_authenticated %}
|
{% if current_user.is_authenticated %}
|
||||||
<li class="nav-item dropdown">
|
<li class="nav-item dropdown">
|
||||||
<a class="nav-link dropdown-toggle" id="navbarDropdownMenuLink" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
<a class="nav-link dropdown-toggle" id="navbarDropdownMenuLink" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||||
Semester {{activeSemesterLabel}}
|
Semester {{activeSemesterLabel()}}
|
||||||
</a>
|
</a>
|
||||||
<ul class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
|
||||||
{% for item in semesterDropDownItems() %}
|
{% for item in semesterDropDownItems() %}
|
||||||
|
@ -50,7 +50,7 @@
|
||||||
</nav>
|
</nav>
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<br>
|
<br>
|
||||||
{% with messages = get_flashed_messages(with_categories=true) %}
|
{% with messages = get_flashed_messages(with_categories=True) %}
|
||||||
{% if messages %}
|
{% if messages %}
|
||||||
{% for category, message in messages %}
|
{% for category, message in messages %}
|
||||||
<div class="alert alert-{{category}}">
|
<div class="alert alert-{{category}}">
|
||||||
|
|
Loading…
Reference in a new issue