From 2cac0031f6c4aa03cf8bbf03d5989b509dc819d8 Mon Sep 17 00:00:00 2001
From: Emmanuel Viennet <emmanuel.viennet@gmail.com>
Date: Wed, 23 Feb 2022 20:15:28 +0100
Subject: [PATCH] Erreur si la reponse portail n'a pas le mail

---
 app/scodoc/sco_synchro_etuds.py | 38 ++++++++++++++++++---------------
 1 file changed, 21 insertions(+), 17 deletions(-)

diff --git a/app/scodoc/sco_synchro_etuds.py b/app/scodoc/sco_synchro_etuds.py
index bbcf4a083..db775438c 100644
--- a/app/scodoc/sco_synchro_etuds.py
+++ b/app/scodoc/sco_synchro_etuds.py
@@ -854,23 +854,27 @@ def formsemestre_import_etud_admission(
                 apo_emailperso = etud.get("mailperso", "")
                 if info["emailperso"] and not apo_emailperso:
                     apo_emailperso = info["emailperso"]
-                if (
-                    import_email
-                    and info["email"] != etud["mail"]
-                    or info["emailperso"] != apo_emailperso
-                ):
-                    sco_etud.adresse_edit(
-                        cnx,
-                        args={
-                            "etudid": etudid,
-                            "adresse_id": info["adresse_id"],
-                            "email": etud["mail"],
-                            "emailperso": apo_emailperso,
-                        },
-                    )
-                    # notifie seulement les changements d'adresse mail institutionnelle
-                    if info["email"] != etud["mail"]:
-                        changed_mails.append((info, etud["mail"]))
+                if import_email:
+                    if not "mail" in etud:
+                        raise ScoValueError(
+                            "la réponse portail n'a pas le champs requis 'mail'"
+                        )
+                    if (
+                        info["email"] != etud["mail"]
+                        or info["emailperso"] != apo_emailperso
+                    ):
+                        sco_etud.adresse_edit(
+                            cnx,
+                            args={
+                                "etudid": etudid,
+                                "adresse_id": info["adresse_id"],
+                                "email": etud["mail"],
+                                "emailperso": apo_emailperso,
+                            },
+                        )
+                        # notifie seulement les changements d'adresse mail institutionnelle
+                        if info["email"] != etud["mail"]:
+                            changed_mails.append((info, etud["mail"]))
             else:
                 unknowns.append(code_nip)
     sco_cache.invalidate_formsemestre(formsemestre_id=sem["formsemestre_id"])
-- 
GitLab