From 901367e49659c443d915d5adcb54453e013bbad2 Mon Sep 17 00:00:00 2001
From: Emmanuel Viennet <emmanuel.viennet@gmail.com>
Date: Tue, 19 Nov 2024 13:31:54 +0100
Subject: [PATCH] Fix 2 errors in assiduites: err. check during excel import

---
 app/views/assiduites.py | 10 +++++++---
 sco_version.py          |  2 +-
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/app/views/assiduites.py b/app/views/assiduites.py
index 8d89626f..ddfbdc7b 100644
--- a/app/views/assiduites.py
+++ b/app/views/assiduites.py
@@ -68,7 +68,7 @@ from app.models import (
     Scolog,
 )
 from app.scodoc.codes_cursus import UE_STANDARD
-
+from app.scodoc import safehtml
 from app.auth.models import User
 from app.models.assiduites import get_assiduites_justif, is_period_conflicting
 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 import html_sco_header
 from app.scodoc import sco_moduleimpl
 from app.scodoc import sco_preferences
 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
     erreurs: list[tuple[str, list]] = []
     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
         date_debut_str = ligne[1]  # iso / fra / excel
         date_fin_str = ligne[2]  # iso / fra / excel
@@ -2569,7 +2570,10 @@ def _import_excel_assiduites_list(
         try:
             # On récupère l'étudiant
             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
             if formsemestre not in etud.get_formsemestres():
                 raise ScoValueError("Étudiant non inscrit dans le semestre")
diff --git a/sco_version.py b/sco_version.py
index 475bf643..6aa3cea4 100644
--- a/sco_version.py
+++ b/sco_version.py
@@ -3,7 +3,7 @@
 
 "Infos sur version ScoDoc"
 
-SCOVERSION = "9.7.44"
+SCOVERSION = "9.7.45"
 
 SCONAME = "ScoDoc"
 
-- 
GitLab