forked from ScoDoc/ScoDoc
Portal data sync: avoid erasing emailperso
This commit is contained in:
parent
a934542537
commit
9d859ad146
@ -68,7 +68,7 @@ def formsemestre_synchro_etuds(
|
|||||||
2- dans Apogée, dans ScoDoc, mais pas inscrit dans le semestre (etuds_noninscrits)
|
2- dans Apogée, dans ScoDoc, mais pas inscrit dans le semestre (etuds_noninscrits)
|
||||||
3- dans Apogée et pas dans ScoDoc (a_importer)
|
3- dans Apogée et pas dans ScoDoc (a_importer)
|
||||||
4- inscrit dans le semestre ScoDoc, mais pas trouvé dans Apogée (sur la base du code NIP)
|
4- inscrit dans le semestre ScoDoc, mais pas trouvé dans Apogée (sur la base du code NIP)
|
||||||
|
|
||||||
Que faire ?
|
Que faire ?
|
||||||
Cas 1: rien à faire
|
Cas 1: rien à faire
|
||||||
Cas 2: inscrire dans le semestre
|
Cas 2: inscrire dans le semestre
|
||||||
@ -340,8 +340,7 @@ def build_page(
|
|||||||
|
|
||||||
|
|
||||||
def list_synch(context, sem, anneeapogee=None):
|
def list_synch(context, sem, anneeapogee=None):
|
||||||
"""
|
""""""
|
||||||
"""
|
|
||||||
inscrits = sco_inscr_passage.list_inscrits(
|
inscrits = sco_inscr_passage.list_inscrits(
|
||||||
context, sem["formsemestre_id"], with_dems=True
|
context, sem["formsemestre_id"], with_dems=True
|
||||||
)
|
)
|
||||||
@ -573,8 +572,7 @@ def get_annee_naissance(ddmmyyyyy): # stokee en dd/mm/yyyy dans le XML portail
|
|||||||
|
|
||||||
|
|
||||||
def do_import_etuds_from_portal(context, sem, a_importer, etudsapo_ident, REQUEST):
|
def do_import_etuds_from_portal(context, sem, a_importer, etudsapo_ident, REQUEST):
|
||||||
"""Inscrit les etudiants Apogee dans ce semestre.
|
"""Inscrit les etudiants Apogee dans ce semestre."""
|
||||||
"""
|
|
||||||
log("do_import_etuds_from_portal: a_importer=%s" % a_importer)
|
log("do_import_etuds_from_portal: a_importer=%s" % a_importer)
|
||||||
if not a_importer:
|
if not a_importer:
|
||||||
return
|
return
|
||||||
@ -761,11 +759,11 @@ def get_bac(etud):
|
|||||||
def formsemestre_import_etud_admission(
|
def formsemestre_import_etud_admission(
|
||||||
context, formsemestre_id, import_identite=True, import_email=False
|
context, formsemestre_id, import_identite=True, import_email=False
|
||||||
):
|
):
|
||||||
"""Tente d'importer les données admission depuis le portail
|
"""Tente d'importer les données admission depuis le portail
|
||||||
pour tous les étudiants du semestre.
|
pour tous les étudiants du semestre.
|
||||||
Si import_identite==True, recopie l'identité (nom/prenom/sexe/date_naissance)
|
Si import_identite==True, recopie l'identité (nom/prenom/sexe/date_naissance)
|
||||||
de chaque étudiant depuis le portail.
|
de chaque étudiant depuis le portail.
|
||||||
N'affecte pas les etudiants inconnus sur le portail.
|
N'affecte pas les etudiants inconnus sur le portail.
|
||||||
"""
|
"""
|
||||||
sem = sco_formsemestre.get_formsemestre(context, formsemestre_id)
|
sem = sco_formsemestre.get_formsemestre(context, formsemestre_id)
|
||||||
ins = context.do_formsemestre_inscription_list({"formsemestre_id": formsemestre_id})
|
ins = context.do_formsemestre_inscription_list({"formsemestre_id": formsemestre_id})
|
||||||
@ -777,6 +775,7 @@ def formsemestre_import_etud_admission(
|
|||||||
unknowns = [] # etudiants avec NIP mais inconnus du portail
|
unknowns = [] # etudiants avec NIP mais inconnus du portail
|
||||||
changed_mails = [] # modification d'adresse mails
|
changed_mails = [] # modification d'adresse mails
|
||||||
cnx = context.GetDBConnexion()
|
cnx = context.GetDBConnexion()
|
||||||
|
|
||||||
for i in ins:
|
for i in ins:
|
||||||
etudid = i["etudid"]
|
etudid = i["etudid"]
|
||||||
info = context.getEtudInfo(etudid=etudid, filled=1)[0]
|
info = context.getEtudInfo(etudid=etudid, filled=1)[0]
|
||||||
@ -794,10 +793,13 @@ def formsemestre_import_etud_admission(
|
|||||||
import_naissance=True,
|
import_naissance=True,
|
||||||
import_identite=import_identite,
|
import_identite=import_identite,
|
||||||
)
|
)
|
||||||
|
apo_emailperso = etud.get("mailperso", "")
|
||||||
|
if info["emailperso"] and not apo_emailperso:
|
||||||
|
apo_emailperso = info["emailperso"]
|
||||||
if (
|
if (
|
||||||
import_email
|
import_email
|
||||||
and info["email"] != etud["mail"]
|
and info["email"] != etud["mail"]
|
||||||
or info["emailperso"] != etud.get("mailperso", "")
|
or info["emailperso"] != apo_emailperso
|
||||||
):
|
):
|
||||||
scolars.adresse_edit(
|
scolars.adresse_edit(
|
||||||
cnx,
|
cnx,
|
||||||
@ -805,7 +807,7 @@ def formsemestre_import_etud_admission(
|
|||||||
"etudid": etudid,
|
"etudid": etudid,
|
||||||
"adresse_id": info["adresse_id"],
|
"adresse_id": info["adresse_id"],
|
||||||
"email": etud["mail"],
|
"email": etud["mail"],
|
||||||
"emailperso": etud.get("mailperso", ""),
|
"emailperso": apo_emailperso,
|
||||||
},
|
},
|
||||||
context=context,
|
context=context,
|
||||||
)
|
)
|
||||||
|
12
scolars.py
12
scolars.py
@ -268,14 +268,13 @@ def identite_list(cnx, *a, **kw):
|
|||||||
|
|
||||||
|
|
||||||
def identite_edit_nocheck(cnx, args):
|
def identite_edit_nocheck(cnx, args):
|
||||||
"""Modifie les champs mentionnes dans args, sans verification ni notification.
|
"""Modifie les champs mentionnes dans args, sans verification ni notification."""
|
||||||
"""
|
|
||||||
_identiteEditor.edit(cnx, args)
|
_identiteEditor.edit(cnx, args)
|
||||||
|
|
||||||
|
|
||||||
def check_nom_prenom(cnx, nom="", prenom="", etudid=None):
|
def check_nom_prenom(cnx, nom="", prenom="", etudid=None):
|
||||||
"""Check if nom and prenom are valid.
|
"""Check if nom and prenom are valid.
|
||||||
Also check for duplicates (homonyms), excluding etudid :
|
Also check for duplicates (homonyms), excluding etudid :
|
||||||
in general, homonyms are allowed, but it may be useful to generate a warning.
|
in general, homonyms are allowed, but it may be useful to generate a warning.
|
||||||
Returns:
|
Returns:
|
||||||
True | False, NbHomonyms
|
True | False, NbHomonyms
|
||||||
@ -418,14 +417,17 @@ def notify_etud_change(context, email_addr, etud, before, after, subject):
|
|||||||
txt = "\n".join(txt)
|
txt = "\n".join(txt)
|
||||||
# build mail
|
# build mail
|
||||||
log("notify_etud_change: sending notification to %s" % email_addr)
|
log("notify_etud_change: sending notification to %s" % email_addr)
|
||||||
|
log("notify_etud_change: subject: %s" % subject)
|
||||||
|
log(txt)
|
||||||
msg = MIMEMultipart()
|
msg = MIMEMultipart()
|
||||||
subj = Header("[ScoDoc] " + subject, SCO_ENCODING)
|
subj = Header("[ScoDoc] " + subject, SCO_ENCODING)
|
||||||
msg["Subject"] = subj
|
msg["Subject"] = subj
|
||||||
msg["From"] = context.get_preference("email_from_addr")
|
msg["From"] = context.get_preference("email_from_addr")
|
||||||
msg["To"] = email_addr
|
msg["To"] = email_addr
|
||||||
txt = MIMEText(txt, "plain", SCO_ENCODING)
|
mime_txt = MIMEText(txt, "plain", SCO_ENCODING)
|
||||||
msg.attach(txt)
|
msg.attach(mime_txt)
|
||||||
context.sendEmail(msg)
|
context.sendEmail(msg)
|
||||||
|
return txt
|
||||||
|
|
||||||
|
|
||||||
# --------
|
# --------
|
||||||
|
Loading…
Reference in New Issue
Block a user