feat: improve assessments page
This commit is contained in:
		| @@ -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 | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user