clean: clean python code

This commit is contained in:
2025-08-07 14:16:15 +02:00
parent db96807422
commit 8cee665f2b
18 changed files with 316 additions and 936 deletions

View File

@@ -17,7 +17,7 @@ class AssessmentRepository(BaseRepository[Assessment]):
class_id: Optional[int] = None,
sort_by: str = 'date_desc'
) -> List[Assessment]:
"""Trouve les évaluations selon les filtres."""
"""Trouve les évaluations selon les filtres avec eager loading des classes."""
query = Assessment.query.options(
joinedload(Assessment.class_group)
)
@@ -44,6 +44,28 @@ class AssessmentRepository(BaseRepository[Assessment]):
joinedload(Assessment.exercises).joinedload(Exercise.grading_elements)
).filter_by(id=id).first()
def get_or_404(self, id: int) -> Assessment:
"""Récupère une évaluation ou lève une erreur 404."""
return Assessment.query.get_or_404(id)
def get_with_class_or_404(self, id: int) -> Assessment:
"""Récupère une évaluation avec sa classe ou lève une erreur 404."""
from flask import abort
assessment = Assessment.query.options(
joinedload(Assessment.class_group)
).filter_by(id=id).first()
if not assessment:
abort(404)
return assessment
def get_with_full_details_or_404(self, id: int) -> Assessment:
"""Récupère une évaluation avec tous ses détails ou lève une erreur 404."""
from flask import abort
assessment = self.find_with_full_details(id)
if not assessment:
abort(404)
return assessment
def find_recent(self, limit: int = 5) -> List[Assessment]:
"""Trouve les évaluations récentes."""
return Assessment.query.order_by(