Fix 2 errors in assiduites: err. check during excel import

This commit is contained in:
Emmanuel Viennet 2024-11-19 13:31:54 +01:00
parent 345920e6c5
commit 901367e496
2 changed files with 8 additions and 4 deletions

View File

@ -68,7 +68,7 @@ from app.models import (
Scolog, Scolog,
) )
from app.scodoc.codes_cursus import UE_STANDARD from app.scodoc.codes_cursus import UE_STANDARD
from app.scodoc import safehtml
from app.auth.models import User from app.auth.models import User
from app.models.assiduites import get_assiduites_justif, is_period_conflicting from app.models.assiduites import get_assiduites_justif, is_period_conflicting
from app.tables.list_etuds import RowEtud, TableEtud from app.tables.list_etuds import RowEtud, TableEtud
@ -79,7 +79,6 @@ from app.views import ScoData
# --------------- # ---------------
from app.scodoc.sco_permissions import Permission from app.scodoc.sco_permissions import Permission
from app.scodoc import html_sco_header
from app.scodoc import sco_moduleimpl from app.scodoc import sco_moduleimpl
from app.scodoc import sco_preferences from app.scodoc import sco_preferences
from app.scodoc import sco_groups_view, sco_groups from app.scodoc import sco_groups_view, sco_groups
@ -2559,6 +2558,8 @@ def _import_excel_assiduites_list(
# On parcourt les lignes et on les traite # On parcourt les lignes et on les traite
erreurs: list[tuple[str, list]] = [] erreurs: list[tuple[str, list]] = []
for num, ligne in enumerate(data): for num, ligne in enumerate(data):
if not ligne or len(ligne) < 5:
raise ScoValueError("Format de fichier tableau non reconnu")
identifiant_etud = ligne[0] # etudid/nip/ine identifiant_etud = ligne[0] # etudid/nip/ine
date_debut_str = ligne[1] # iso / fra / excel date_debut_str = ligne[1] # iso / fra / excel
date_fin_str = ligne[2] # iso / fra / excel date_fin_str = ligne[2] # iso / fra / excel
@ -2569,7 +2570,10 @@ def _import_excel_assiduites_list(
try: try:
# On récupère l'étudiant # On récupère l'étudiant
etud: Identite = _find_etud(identifiant_etud, type_etud_identifiant) etud: Identite = _find_etud(identifiant_etud, type_etud_identifiant)
if not etud:
raise ScoValueError(
f"Étudiant ({safehtml.html_to_safe_html(identifiant_etud)}) non trouvé"
)
# On vérifie que l'étudiant appartient au semestre # On vérifie que l'étudiant appartient au semestre
if formsemestre not in etud.get_formsemestres(): if formsemestre not in etud.get_formsemestres():
raise ScoValueError("Étudiant non inscrit dans le semestre") raise ScoValueError("Étudiant non inscrit dans le semestre")

View File

@ -3,7 +3,7 @@
"Infos sur version ScoDoc" "Infos sur version ScoDoc"
SCOVERSION = "9.7.44" SCOVERSION = "9.7.45"
SCONAME = "ScoDoc" SCONAME = "ScoDoc"