feat: add temporal student gestion
This commit is contained in:
23
app.py
23
app.py
@@ -14,6 +14,7 @@ from routes.grading import bp as grading_bp
|
||||
from routes.config import bp as config_bp
|
||||
from routes.domains import bp as domains_bp
|
||||
from routes.classes import bp as classes_bp
|
||||
# from routes.student_movements import bp as student_movements_bp # Désactivé car page supprimée
|
||||
|
||||
def create_app(config_name=None):
|
||||
if config_name is None:
|
||||
@@ -45,6 +46,7 @@ def create_app(config_name=None):
|
||||
app.register_blueprint(config_bp)
|
||||
app.register_blueprint(domains_bp)
|
||||
app.register_blueprint(classes_bp)
|
||||
# app.register_blueprint(student_movements_bp) # Désactivé car page supprimée
|
||||
|
||||
# Register CLI commands
|
||||
app.cli.add_command(init_db)
|
||||
@@ -84,10 +86,23 @@ def create_app(config_name=None):
|
||||
@app.route('/students')
|
||||
def students():
|
||||
try:
|
||||
# Optimisation: utiliser joinedload pour éviter les requêtes N+1
|
||||
student_repo = StudentRepository()
|
||||
students = student_repo.find_all_with_class_ordered()
|
||||
return render_template('students.html', students=students)
|
||||
# Utilisation du repository temporel pour récupérer tous les élèves avec leur classe actuelle
|
||||
from repositories.temporal_student_repository import TemporalStudentRepository
|
||||
from models import Student
|
||||
|
||||
temporal_repo = TemporalStudentRepository()
|
||||
all_students = Student.query.order_by(Student.last_name, Student.first_name).all()
|
||||
|
||||
# Enrichir chaque élève avec sa classe actuelle
|
||||
students_with_classes = []
|
||||
for student in all_students:
|
||||
current_class = student.get_current_class()
|
||||
students_with_classes.append({
|
||||
'student': student,
|
||||
'current_class': current_class
|
||||
})
|
||||
|
||||
return render_template('students.html', students_with_classes=students_with_classes)
|
||||
except Exception as e:
|
||||
app.logger.error(f'Erreur lors du chargement des étudiants: {e}')
|
||||
return render_template('error.html', error="Erreur lors du chargement des étudiants"), 500
|
||||
|
||||
Reference in New Issue
Block a user