diff --git a/advlabdb/modelViews.py b/advlabdb/modelViews.py index 074e8dc..d6aa8cf 100644 --- a/advlabdb/modelViews.py +++ b/advlabdb/modelViews.py @@ -1,7 +1,7 @@ from flask import flash, request, url_for from flask_admin.contrib.sqla.filters import BaseSQLAFilter from flask_admin.menu import MenuLink -from flask_security import hash_password, current_user +from flask_security import current_user, hash_password from wtforms import BooleanField, SelectField, TextField from wtforms.validators import DataRequired, Email diff --git a/advlabdb/routes.py b/advlabdb/routes.py index fd250cf..397c2c7 100644 --- a/advlabdb/routes.py +++ b/advlabdb/routes.py @@ -70,108 +70,7 @@ def index(): return render_template("index.html") -""" -@app.route("/assistants") -@roles_required("admin") -def assistants(): - headerAndDataList = [["First name", "row.first_name"], - ["Last name", "row.last_name"], - ["Email", "row.email"], - ["Phone number", "row.phone_number"], - ["Mobile phone number", "row.mobile_phone_number"], - ["Room", "row.room"], - ["Building", "row.building"], - ["User", "row.user"], - ["Appointments", "row.appointments"], - ["Experiment marks", "row.experiment_marks"]] - - table = makeTable(headerAndDataList=headerAndDataList, - rows=Assistant.query.filter(Assistant.user_id != None).all()) - - return render_template("assistants.html", - table=table, - ) - - -@app.route("/experiments") -@roles_required("admin") -def experiments(): - semester = Semester.query.get(current_user.active_semester_id) - parts = semester.parts - tables = [] - tablesLabels = [] - - headerAndDataList = [["Number", "row.experiment.number"], - ["Name", "row.experiment.name"], - ["Assistants", "row.assistants"], - ["Groups with this ex.", "[gEx.group.number for gEx in row.group_experiments]"]] - - for part in parts: - tablesLabels.append("Part " + part.label + ":") - tables.append(makeTable(headerAndDataList=headerAndDataList, - rows=part.part_experiments)) - - return render_template("experiments.html", - tables=tables, - tablesLabels=tablesLabels, - ) - - -@app.route("/appointments") -@roles_required("admin") -def appointments(): - return render_template("appointments.html", - ) - - -@app.route("/groups") -@roles_required("admin") -def groups(): - semester = Semester.query.get(current_user.active_semester_id) - parts = semester.parts - tables = [] - tablesLabels = [] - - headerAndDataList = [["Number", "row.number"], - ["Students", - "[ps.student.first_name + ' ' + ps.student.last_name for ps in row.part_students]"], - ["Experiments (appointments)", - "[str(gx.part_experiment.experiment.number) + ' (' + str([appointmentDate(a.date) for a in gx.appointments]) + ')' for gx in row.group_experiments]"]] - - for part in parts: - tablesLabels.append("Part " + part.label + ":") - tables.append(makeTable(headerAndDataList=headerAndDataList, - rows=part.groups)) - - return render_template("groups.html", - tables=tables, - tablesLabels=tablesLabels, - ) - - -@app.route("/deactivate_users", methods=["GET"]) -@roles_required("admin") -def deactivate_users(): - usersEmails = json.loads(request.args.get("json")) - deactivatedUsersEmails = [] - for email in usersEmails: - user = User.query.filter(User.email == email).first() - if user == current_user: - flash("You have tried to deactivate yourself as user!", "danger") - continue - if user_datastore.deactivate_user(user): - deactivatedUsersEmails.append(email) - db.session.commit() - deactivatedUsersEmailsLen = len(deactivatedUsersEmails) - if deactivatedUsersEmailsLen == 0: - flash(f"No users deactivated!", "warning") - else: - flash(f"{deactivatedUsersEmailsLen} Users with emails {deactivatedUsersEmails} deactivated!", "success") - return redirect(url_for("users")) -""" - - -@app.route("/set_semester", methods=["GET"]) +@app.route("/set_semester") @auth_required() def set_semester(): setActiveSemester(request.args.get("semester_id"))