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
|
return False # ??? pas d'annee d'inscription dans la réponse
|
||||||
|
|
||||||
# Non disponible avec l'API v2. Apparemment non utilisée de toute
|
etuds = [e for e in etuds if check_inscription(e)]
|
||||||
# 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
|
return etuds
|
||||||
|
|
||||||
|
|
||||||
@ -472,7 +468,7 @@ def _normalize_apo_fields(infolist):
|
|||||||
|
|
||||||
recode les champs: paiementinscription (-> booleen), datefinalisationinscription (date)
|
recode les champs: paiementinscription (-> booleen), datefinalisationinscription (date)
|
||||||
ajoute le champs 'paiementinscription_str' : 'ok', 'Non' ou '?'
|
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:
|
for infos in infolist:
|
||||||
if infos.has_key("paiementinscription"):
|
if infos.has_key("paiementinscription"):
|
||||||
@ -501,6 +497,9 @@ def _normalize_apo_fields(infolist):
|
|||||||
if not infos.has_key("etape"):
|
if not infos.has_key("etape"):
|
||||||
infos["etape"] = None
|
infos["etape"] = None
|
||||||
|
|
||||||
|
if not infos.has_key("prenom"):
|
||||||
|
infos["prenom"] = ""
|
||||||
|
|
||||||
return infolist
|
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
|
] # on a ici toutes les infos renvoyées par le portail
|
||||||
|
|
||||||
# Traduit les infos portail en infos pour ScoDoc:
|
# 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
|
if address[-2:] == "\\n": # certains champs se terminent par \n
|
||||||
address = address[:-2]
|
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 = {
|
args = {
|
||||||
|
"code_nip": etud["nip"],
|
||||||
"nom": etud["nom"].strip(),
|
"nom": etud["nom"].strip(),
|
||||||
"prenom": etud["prenom"].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()),
|
"sexe": gender2sex(etud["gender"].strip()),
|
||||||
"date_naissance": etud["naissance"].strip(),
|
"email": etud.get("mail", "").strip(),
|
||||||
"lieu_naissance": etud["ville_naissance"].strip(),
|
"emailperso": etud.get("mailperso", "").strip(),
|
||||||
"dept_naissance": etud["code_dep_naissance"].strip(),
|
"date_naissance": etud.get("naissance", "").strip(),
|
||||||
"code_nip": etud["nip"],
|
"lieu_naissance": etud.get("ville_naissance", "").strip(),
|
||||||
"code_ine": etud["ine"],
|
"dept_naissance": etud.get("code_dep_naissance", "").strip(),
|
||||||
"email": etud["mail"].strip(),
|
|
||||||
"emailperso": etud[
|
|
||||||
"mailperso"
|
|
||||||
].strip(), # pas toujours fourni par le portail
|
|
||||||
"domicile": address,
|
"domicile": address,
|
||||||
"codepostaldomicile": etud.get("postalcode", "").strip(),
|
"codepostaldomicile": etud.get("postalcode", "").strip(),
|
||||||
"villedomicile": etud["city"].strip(),
|
"villedomicile": etud.get("city", "").strip(),
|
||||||
"paysdomicile": etud["country"].strip(),
|
"paysdomicile": etud.get("country", "").strip(),
|
||||||
"telephone": etud.get("phone", "").strip(),
|
"telephone": etud.get("phone", "").strip(),
|
||||||
"typeadresse": "domicile",
|
"typeadresse": "domicile",
|
||||||
"boursier": etud.get("bourse", None),
|
"boursier": etud.get("bourse", None),
|
||||||
"description": "infos portail",
|
"description": "infos portail",
|
||||||
}
|
}
|
||||||
|
|
||||||
# Identite
|
# Identite
|
||||||
args["etudid"] = scolars.identite_create(cnx, args)
|
args["etudid"] = scolars.identite_create(cnx, args)
|
||||||
created_etudids.append(args["etudid"])
|
created_etudids.append(args["etudid"])
|
||||||
@ -736,7 +732,7 @@ def do_import_etud_admission(
|
|||||||
for apo_field, sco_field in fields_apo_sco:
|
for apo_field, sco_field in fields_apo_sco:
|
||||||
x = etud.get(apo_field, "").strip()
|
x = etud.get(apo_field, "").strip()
|
||||||
if x:
|
if x:
|
||||||
args[sco_field] = x.strip()
|
args[sco_field] = x
|
||||||
# Champs spécifiques:
|
# Champs spécifiques:
|
||||||
sexe = gender2sex(etud["gender"].strip())
|
sexe = gender2sex(etud["gender"].strip())
|
||||||
if sexe:
|
if sexe:
|
||||||
|
11
sco_utils.py
11
sco_utils.py
@ -348,8 +348,7 @@ def group_by_key(d, key):
|
|||||||
TYPE_ADMISSION_DEFAULT = "Inconnue"
|
TYPE_ADMISSION_DEFAULT = "Inconnue"
|
||||||
TYPES_ADMISSION = (TYPE_ADMISSION_DEFAULT, "APB", "APB-PC", "CEF", "Direct")
|
TYPES_ADMISSION = (TYPE_ADMISSION_DEFAULT, "APB", "APB-PC", "CEF", "Direct")
|
||||||
|
|
||||||
""" Simple python utilities
|
# ---- Simple python utilities
|
||||||
"""
|
|
||||||
|
|
||||||
|
|
||||||
def simplesqlquote(s, maxlen=50):
|
def simplesqlquote(s, maxlen=50):
|
||||||
@ -546,14 +545,6 @@ def sendCSVFile(REQUEST, data, filename):
|
|||||||
return data
|
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):
|
def sendPDFFile(REQUEST, data, filename):
|
||||||
filename = (
|
filename = (
|
||||||
unescape_html(suppress_accents(filename)).replace("&", "").replace(" ", "_")
|
unescape_html(suppress_accents(filename)).replace("&", "").replace(" ", "_")
|
||||||
|
Loading…
Reference in New Issue
Block a user