1
0
Fork 0
mirror of https://codeberg.org/Mo8it/AdvLabDB.git synced 2024-11-08 21:21:06 +00:00

Move setActiveSemester

This commit is contained in:
Mo 2022-05-29 21:41:01 +02:00
parent f99354ba53
commit 1141d1dfb9
4 changed files with 19 additions and 25 deletions

View file

@ -42,7 +42,6 @@ from .exceptions import DataBaseException, ModelViewException
from .model_dependent_funs import ( from .model_dependent_funs import (
initActiveSemesterMenuLinks, initActiveSemesterMenuLinks,
lastSemester, lastSemester,
setUserActiveSemester,
sortedSemestersStartingWithNewest, sortedSemestersStartingWithNewest,
) )
from .model_independent_funs import randomPassword from .model_independent_funs import randomPassword
@ -347,7 +346,7 @@ class SemesterView(SecureAdminModelView):
category._children.insert(0, link) category._children.insert(0, link)
def after_model_change(self, form, model, is_created): def after_model_change(self, form, model, is_created):
setUserActiveSemester(model) current_user.setActiveSemester(model)
SemesterView.addMenuLink(adminSpace, model) SemesterView.addMenuLink(adminSpace, model)
SemesterView.addMenuLink(assistantSpace, model) SemesterView.addMenuLink(assistantSpace, model)

View file

@ -24,23 +24,6 @@ def lastSemester():
return sortedSemestersStartingWithNewest(limit=1).first() return sortedSemestersStartingWithNewest(limit=1).first()
def setUserActiveSemester(semester):
if semester is None:
flash(f"Can not change the active semester to None!", "error")
return
if current_user.active_semester != semester:
try:
current_user.active_semester = semester
db.session.commit()
except Exception as ex:
flash(str(ex), "error")
db.session.rollback()
else:
flash(f"Active semester changed to {semester.repr()}!", "warning")
def initActiveSemesterMenuLinks(space): def initActiveSemesterMenuLinks(space):
with app.app_context(): with app.app_context():
try: try:

View file

@ -586,6 +586,22 @@ class User(db.Model, FsUserMixin):
admin = db.relationship("Admin", back_populates="user", lazy=False, uselist=False) admin = db.relationship("Admin", back_populates="user", lazy=False, uselist=False)
assistant = db.relationship("Assistant", back_populates="user", lazy=True, uselist=False) assistant = db.relationship("Assistant", back_populates="user", lazy=True, uselist=False)
def setActiveSemester(semester):
if semester is None:
flash(f"Can not change the active semester to None!", "error")
return
if self.active_semester != semester:
try:
self.active_semester = semester
db.session.commit()
except Exception as ex:
flash(str(ex), "error")
db.session.rollback()
else:
flash(f"Active semester changed to {semester.repr()}!", "warning")
def repr(self): def repr(self):
return f"{self.first_name} {self.last_name}" return f"{self.first_name} {self.last_name}"

View file

@ -2,11 +2,7 @@ from flask import flash, redirect, render_template, request, url_for
from flask_security import auth_required, current_user, roles_accepted, roles_required from flask_security import auth_required, current_user, roles_accepted, roles_required
from . import app, db from . import app, db
from .model_dependent_funs import ( from .model_dependent_funs import active_semester_repr, lastSemester
active_semester_repr,
lastSemester,
setUserActiveSemester,
)
from .models import Semester from .models import Semester
@ -34,7 +30,7 @@ def set_semester():
flash(str(ex), "error") flash(str(ex), "error")
else: else:
semester = db.session.get(Semester, semesterId) semester = db.session.get(Semester, semesterId)
setUserActiveSemester(semester) current_user.setActiveSemester(semester)
red = request.referrer or url_for("index") red = request.referrer or url_for("index")
return redirect(red) return redirect(red)