forked from ScoDoc/ScoDoc
Synchro Apogée: ajout information sur finalisation inscription
This commit is contained in:
parent
da93a99069
commit
1d9c36f8e2
@ -701,6 +701,10 @@ def etuds_select_boxes(
|
|||||||
|
|
||||||
if not etud.get("paiementinscription", True):
|
if not etud.get("paiementinscription", True):
|
||||||
elink += '<span class="paspaye"> (non paiement)</span>'
|
elink += '<span class="paspaye"> (non paiement)</span>'
|
||||||
|
if etud.get("datefinalisationinscription"):
|
||||||
|
elink += f"""<span class="finalise"> (inscr. finalisée le {
|
||||||
|
etud["datefinalisationinscription"].strftime(scu.DATE_FMT)
|
||||||
|
})</span>"""
|
||||||
|
|
||||||
H.append("""<div class="pas_etud%s">""" % c)
|
H.append("""<div class="pas_etud%s">""" % c)
|
||||||
if "etape" in etud:
|
if "etape" in etud:
|
||||||
@ -726,17 +730,36 @@ def etuds_select_boxes(
|
|||||||
def etuds_select_box_xls(src_cat):
|
def etuds_select_box_xls(src_cat):
|
||||||
"export a box to excel"
|
"export a box to excel"
|
||||||
etuds = src_cat["etuds"]
|
etuds = src_cat["etuds"]
|
||||||
columns_ids = ["etudid", "civilite_str", "nom", "prenom", "etape"]
|
columns_ids = [
|
||||||
titles = {x: x for x in columns_ids}
|
"etudid",
|
||||||
|
"ine",
|
||||||
# Ajoute colonne paiement inscription
|
"nip",
|
||||||
columns_ids.append("paiementinscription_str")
|
"civilite_str",
|
||||||
titles["paiementinscription_str"] = "paiement inscription"
|
"nom",
|
||||||
|
"prenom",
|
||||||
|
"etape",
|
||||||
|
"paiementinscription_str",
|
||||||
|
"datefinalisationinscription",
|
||||||
|
]
|
||||||
|
titles = {x: x for x in columns_ids} | {
|
||||||
|
"paiementinscription_str": "Paiement inscr.",
|
||||||
|
"datefinalisationinscription": "Finalisation inscr.",
|
||||||
|
}
|
||||||
for e in etuds:
|
for e in etuds:
|
||||||
if not e.get("paiementinscription", True):
|
if not e.get("paiementinscription", True):
|
||||||
e["paiementinscription_str"] = "NON"
|
e["paiementinscription_str"] = "NON"
|
||||||
else:
|
else:
|
||||||
e["paiementinscription_str"] = "-"
|
e["paiementinscription_str"] = "-"
|
||||||
|
# si e est un étudiant Apo, on a nip et ine
|
||||||
|
# mais si e est ScoDoc, on a code_nip et code_ine:
|
||||||
|
e["nip"] = e.get("nip", e.get("code_nip"))
|
||||||
|
e["ine"] = e.get("ine", e.get("code_ine"))
|
||||||
|
# Pour excel, datefinalisationinscription doit être datetime
|
||||||
|
dat = e.get("datefinalisationinscription")
|
||||||
|
if isinstance(dat, datetime.date):
|
||||||
|
e["datefinalisationinscription"] = datetime.datetime.combine(
|
||||||
|
dat, datetime.time.min
|
||||||
|
)
|
||||||
tab = GenTable(
|
tab = GenTable(
|
||||||
caption="%(title)s. %(help)s" % src_cat["infos"],
|
caption="%(title)s. %(help)s" % src_cat["infos"],
|
||||||
columns_ids=columns_ids,
|
columns_ids=columns_ids,
|
||||||
|
@ -476,14 +476,15 @@ def get_etapes_apogee_dept():
|
|||||||
return etapes
|
return etapes
|
||||||
|
|
||||||
|
|
||||||
def _portal_date_dmy2date(s):
|
def _portal_date_dmy2date(s: str) -> datetime.date | None:
|
||||||
"""date inscription renvoyée sous la forme dd/mm/yy
|
"""s est la date inscription fournie par le portail
|
||||||
renvoie un objet date, ou None
|
sous la forme dd/mm/yy
|
||||||
|
Renvoie un objet date, ou None
|
||||||
|
Raises ValueError si format invalide.
|
||||||
"""
|
"""
|
||||||
s = s.strip()
|
s = s.strip()
|
||||||
if not s:
|
if not s:
|
||||||
return None
|
return None
|
||||||
else:
|
|
||||||
d, m, y = [int(x) for x in s.split("/")] # raises ValueError if bad format
|
d, m, y = [int(x) for x in s.split("/")] # raises ValueError if bad format
|
||||||
if y < 100:
|
if y < 100:
|
||||||
y += 2000 # 21ème siècle
|
y += 2000 # 21ème siècle
|
||||||
@ -494,10 +495,18 @@ def _normalize_apo_fields(infolist):
|
|||||||
"""
|
"""
|
||||||
infolist: liste de dict renvoyés par le portail Apogee
|
infolist: liste de dict renvoyés par le portail Apogee
|
||||||
|
|
||||||
recode les champs: paiementinscription (-> booleen), datefinalisationinscription (date)
|
Recode les champs:
|
||||||
ajoute le champ 'paiementinscription_str' : 'ok', 'Non' ou '?'
|
- paiementinscription (-> booleen)
|
||||||
ajoute les champs 'etape' (= None) et 'prenom' ('') s'ils ne sont pas présents.
|
- datefinalisationinscription (date)
|
||||||
ajoute le champ 'civilite_etat_civil' (=''), et 'prenom_etat_civil' (='') si non présent.
|
|
||||||
|
Ajoute le champ
|
||||||
|
- 'paiementinscription_str' : 'ok', 'Non' ou '?'
|
||||||
|
|
||||||
|
S'ils ne sont pas présents, ajoute les champs:
|
||||||
|
- 'etape' (None)
|
||||||
|
- 'prenom' ('')
|
||||||
|
- 'civilite_etat_civil' ('')
|
||||||
|
- 'prenom_etat_civil' ('')
|
||||||
"""
|
"""
|
||||||
for infos in infolist:
|
for infos in infolist:
|
||||||
if "paiementinscription" in infos:
|
if "paiementinscription" in infos:
|
||||||
@ -516,9 +525,11 @@ def _normalize_apo_fields(infolist):
|
|||||||
infos["datefinalisationinscription"] = _portal_date_dmy2date(
|
infos["datefinalisationinscription"] = _portal_date_dmy2date(
|
||||||
infos["datefinalisationinscription"]
|
infos["datefinalisationinscription"]
|
||||||
)
|
)
|
||||||
infos["datefinalisationinscription_str"] = infos[
|
infos["datefinalisationinscription_str"] = (
|
||||||
"datefinalisationinscription"
|
infos["datefinalisationinscription"].strftime(scu.DATE_FMT)
|
||||||
].strftime(scu.DATE_FMT)
|
if infos["datefinalisationinscription"]
|
||||||
|
else ""
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
infos["datefinalisationinscription"] = None
|
infos["datefinalisationinscription"] = None
|
||||||
infos["datefinalisationinscription_str"] = ""
|
infos["datefinalisationinscription_str"] = ""
|
||||||
|
@ -523,7 +523,7 @@ def list_synch(sem, annee_apogee=None):
|
|||||||
"etuds": set_to_sorted_list(etuds_ok, is_inscrit=True),
|
"etuds": set_to_sorted_list(etuds_ok, is_inscrit=True),
|
||||||
"infos": {
|
"infos": {
|
||||||
"id": "etuds_ok",
|
"id": "etuds_ok",
|
||||||
"title": "Étudiants dans Apogée et déjà inscrits",
|
"title": "Étudiants dans Apogée et déjà dans ScoDoc",
|
||||||
"help": """Ces etudiants sont inscrits dans le semestre ScoDoc et sont présents dans Apogée:
|
"help": """Ces etudiants sont inscrits dans le semestre ScoDoc et sont présents dans Apogée:
|
||||||
tout est donc correct. Décocher les étudiants que vous souhaitez désinscrire.""",
|
tout est donc correct. Décocher les étudiants que vous souhaitez désinscrire.""",
|
||||||
"title_target": "",
|
"title_target": "",
|
||||||
|
@ -3850,6 +3850,11 @@ span.finalisationinscription {
|
|||||||
color: green;
|
color: green;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
span.finalise {
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
.pas_sembox_title a {
|
.pas_sembox_title a {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
font-size: 100%;
|
font-size: 100%;
|
||||||
|
@ -24,8 +24,8 @@
|
|||||||
<codepostal_lycee>code postal lycée</codepostal_lycee>
|
<codepostal_lycee>code postal lycée</codepostal_lycee>
|
||||||
<mention>AB</mention>
|
<mention>AB</mention>
|
||||||
<bourse>N</bourse>
|
<bourse>N</bourse>
|
||||||
<paiementinscription>true</paiementinscription>
|
<paiementinscription>{paiementinscription}</paiementinscription>
|
||||||
<datefinalisationinscription></datefinalisationinscription>
|
<datefinalisationinscription>{datefinalisationinscription}</datefinalisationinscription>
|
||||||
<ville_naissance>{ville_naissance}</ville_naissance>
|
<ville_naissance>{ville_naissance}</ville_naissance>
|
||||||
<code_dep_naissance>{code_dep_naissance}</code_dep_naissance>
|
<code_dep_naissance>{code_dep_naissance}</code_dep_naissance>
|
||||||
<libelle_dep_naissance>{libelle_dep_naissance}</libelle_dep_naissance>
|
<libelle_dep_naissance>{libelle_dep_naissance}</libelle_dep_naissance>
|
||||||
|
@ -80,6 +80,8 @@ def make_random_etud(nip, etape=None, annee=None, template=ETUD_TEMPLATE_FULL):
|
|||||||
ville_naissance=random.choice(("Paris", "Berlin", "Londres", "")),
|
ville_naissance=random.choice(("Paris", "Berlin", "Londres", "")),
|
||||||
code_dep_naissance=random.choice(("75", "99", "89")),
|
code_dep_naissance=random.choice(("75", "99", "89")),
|
||||||
libelle_dep_naissance="nom département",
|
libelle_dep_naissance="nom département",
|
||||||
|
paiementinscription=random.choice(("true", "false")),
|
||||||
|
datefinalisationinscription=random.choice(("30/10/2024", "1/10/66", "")),
|
||||||
)
|
)
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user