Fix import/synchro donnees etudiants portal
This commit is contained in:
parent
63a18176ea
commit
5e24cd8100
@ -174,11 +174,7 @@ def get_inscrits_etape(context, code_etape, anneeapogee=None, ntrials=2):
|
||||
)
|
||||
return False # ??? pas d'annee d'inscription dans la réponse
|
||||
|
||||
# Non disponible avec l'API v2. Apparemment non utilisée de toute
|
||||
# façon, rien dans le code ne mettait anneeapogee à *, mais
|
||||
# seulement à l'année par de début de semestre. Donc on laisse le test.
|
||||
if anneeapogee != "*":
|
||||
etuds = [e for e in etuds if check_inscription(e)]
|
||||
etuds = [e for e in etuds if check_inscription(e)]
|
||||
return etuds
|
||||
|
||||
|
||||
@ -472,7 +468,7 @@ def _normalize_apo_fields(infolist):
|
||||
|
||||
recode les champs: paiementinscription (-> booleen), datefinalisationinscription (date)
|
||||
ajoute le champs 'paiementinscription_str' : 'ok', 'Non' ou '?'
|
||||
ajuoute le champs 'etape' (= None) s'il n'est pas présent
|
||||
ajoute les champs 'etape' (= None) et 'prenom' ('') s'ils ne sont pas présents.
|
||||
"""
|
||||
for infos in infolist:
|
||||
if infos.has_key("paiementinscription"):
|
||||
@ -501,6 +497,9 @@ def _normalize_apo_fields(infolist):
|
||||
if not infos.has_key("etape"):
|
||||
infos["etape"] = None
|
||||
|
||||
if not infos.has_key("prenom"):
|
||||
infos["prenom"] = ""
|
||||
|
||||
return infolist
|
||||
|
||||
|
||||
|
@ -586,36 +586,32 @@ def do_import_etuds_from_portal(context, sem, a_importer, etudsapo_ident, REQUES
|
||||
] # on a ici toutes les infos renvoyées par le portail
|
||||
|
||||
# Traduit les infos portail en infos pour ScoDoc:
|
||||
address = etud["address"].strip()
|
||||
address = etud.get("address", "").strip()
|
||||
if address[-2:] == "\\n": # certains champs se terminent par \n
|
||||
address = address[:-2]
|
||||
# Les mails et le code INE sont facultatifs (pas toujours renvoyés par le portail)
|
||||
etud["mail"] = etud.get("mail", "")
|
||||
etud["mailperso"] = etud.get("mailperso", "")
|
||||
etud["ine"] = etud.get("ine", "")
|
||||
#
|
||||
|
||||
args = {
|
||||
"code_nip": etud["nip"],
|
||||
"nom": etud["nom"].strip(),
|
||||
"prenom": etud["prenom"].strip(),
|
||||
# Les champs suivants sont facultatifs (pas toujours renvoyés par le portail)
|
||||
"code_ine": etud.get("ine", "").strip(),
|
||||
"sexe": gender2sex(etud["gender"].strip()),
|
||||
"date_naissance": etud["naissance"].strip(),
|
||||
"lieu_naissance": etud["ville_naissance"].strip(),
|
||||
"dept_naissance": etud["code_dep_naissance"].strip(),
|
||||
"code_nip": etud["nip"],
|
||||
"code_ine": etud["ine"],
|
||||
"email": etud["mail"].strip(),
|
||||
"emailperso": etud[
|
||||
"mailperso"
|
||||
].strip(), # pas toujours fourni par le portail
|
||||
"email": etud.get("mail", "").strip(),
|
||||
"emailperso": etud.get("mailperso", "").strip(),
|
||||
"date_naissance": etud.get("naissance", "").strip(),
|
||||
"lieu_naissance": etud.get("ville_naissance", "").strip(),
|
||||
"dept_naissance": etud.get("code_dep_naissance", "").strip(),
|
||||
"domicile": address,
|
||||
"codepostaldomicile": etud.get("postalcode", "").strip(),
|
||||
"villedomicile": etud["city"].strip(),
|
||||
"paysdomicile": etud["country"].strip(),
|
||||
"villedomicile": etud.get("city", "").strip(),
|
||||
"paysdomicile": etud.get("country", "").strip(),
|
||||
"telephone": etud.get("phone", "").strip(),
|
||||
"typeadresse": "domicile",
|
||||
"boursier": etud.get("bourse", None),
|
||||
"description": "infos portail",
|
||||
}
|
||||
|
||||
# Identite
|
||||
args["etudid"] = scolars.identite_create(cnx, args)
|
||||
created_etudids.append(args["etudid"])
|
||||
@ -736,7 +732,7 @@ def do_import_etud_admission(
|
||||
for apo_field, sco_field in fields_apo_sco:
|
||||
x = etud.get(apo_field, "").strip()
|
||||
if x:
|
||||
args[sco_field] = x.strip()
|
||||
args[sco_field] = x
|
||||
# Champs spécifiques:
|
||||
sexe = gender2sex(etud["gender"].strip())
|
||||
if sexe:
|
||||
|
11
sco_utils.py
11
sco_utils.py
@ -348,8 +348,7 @@ def group_by_key(d, key):
|
||||
TYPE_ADMISSION_DEFAULT = "Inconnue"
|
||||
TYPES_ADMISSION = (TYPE_ADMISSION_DEFAULT, "APB", "APB-PC", "CEF", "Direct")
|
||||
|
||||
""" Simple python utilities
|
||||
"""
|
||||
# ---- Simple python utilities
|
||||
|
||||
|
||||
def simplesqlquote(s, maxlen=50):
|
||||
@ -546,14 +545,6 @@ def sendCSVFile(REQUEST, data, filename):
|
||||
return data
|
||||
|
||||
|
||||
# head = """Content-type: %s; name="%s"
|
||||
# Content-disposition: filename="%s"
|
||||
# Title: %s
|
||||
#
|
||||
# """ % (CSV_MIMETYPE,filename,filename,title)
|
||||
# return head + str(data)
|
||||
|
||||
|
||||
def sendPDFFile(REQUEST, data, filename):
|
||||
filename = (
|
||||
unescape_html(suppress_accents(filename)).replace("&", "").replace(" ", "_")
|
||||
|
Loading…
Reference in New Issue
Block a user