1
0
forked from ScoDoc/ScoDoc

Fix import/synchro donnees etudiants portal

This commit is contained in:
viennet 2020-10-21 00:15:40 +02:00
parent 63a18176ea
commit 5e24cd8100
3 changed files with 20 additions and 34 deletions

View File

@ -174,10 +174,6 @@ 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)]
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

View File

@ -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:

View File

@ -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(" ", "_")