diff --git a/routes/assessments.py b/routes/assessments.py index 9b3e7f5..fe36253 100644 --- a/routes/assessments.py +++ b/routes/assessments.py @@ -11,8 +11,43 @@ bp = Blueprint('assessments', __name__, url_prefix='/assessments') @handle_db_errors def list(): from sqlalchemy.orm import joinedload - assessments = Assessment.query.options(joinedload(Assessment.class_group)).order_by(Assessment.date.desc()).all() - return render_template('assessments.html', assessments=assessments) + + # Récupérer les paramètres de filtrage + trimester_filter = request.args.get('trimester', '') + class_filter = request.args.get('class', '') + sort_by = request.args.get('sort', 'date_desc') + + # Construire la requête de base + query = Assessment.query.options(joinedload(Assessment.class_group)) + + # Appliquer les filtres + if trimester_filter: + query = query.filter(Assessment.trimester == int(trimester_filter)) + + if class_filter: + query = query.filter(Assessment.class_group_id == int(class_filter)) + + # Appliquer le tri + if sort_by == 'date_desc': + query = query.order_by(Assessment.date.desc()) + elif sort_by == 'date_asc': + query = query.order_by(Assessment.date.asc()) + elif sort_by == 'title': + query = query.order_by(Assessment.title.asc()) + elif sort_by == 'class': + query = query.join(ClassGroup).order_by(ClassGroup.name.asc()) + + assessments = query.all() + + # Récupérer toutes les classes pour le filtre + classes = ClassGroup.query.order_by(ClassGroup.name.asc()).all() + + return render_template('assessments.html', + assessments=assessments, + classes=classes, + current_trimester=trimester_filter, + current_class=class_filter, + current_sort=sort_by) # Route obsolète supprimée - utiliser new_unified à la place diff --git a/templates/assessments.html b/templates/assessments.html index d44d66b..e14a6f7 100644 --- a/templates/assessments.html +++ b/templates/assessments.html @@ -3,76 +3,249 @@ {% block title %}Évaluations - Gestion Scolaire{% endblock %} {% block content %} -
Gérez et organisez toutes vos évaluations
+{{ assessment.description }}
+ {% endif %} + + + +Commencez par créer votre première évaluation.
-+ Commencez votre gestion d'évaluations en créant votre première évaluation. + Vous pourrez y ajouter des exercices et définir le barème directement. +
+ +💡 Astuce : Une évaluation peut contenir plusieurs exercices avec des barèmes différents
+