diff --git a/app/scodoc/sco_page_etud.py b/app/scodoc/sco_page_etud.py
index 2a317add2..5d40b9d47 100644
--- a/app/scodoc/sco_page_etud.py
+++ b/app/scodoc/sco_page_etud.py
@@ -327,34 +327,10 @@ def fiche_etud(etudid=None):
info["link_inscrire_ailleurs"] = ""
# Liste des annotations
- annotations_list = []
- annotations = EtudAnnotation.query.filter_by(etudid=etud.id).order_by(
- sa.desc(EtudAnnotation.date)
+ html_annotations_list = "\n".join(
+ [] if restrict_etud_data else get_html_annotations_list(etud)
)
- for annot in annotations:
- del_link = (
- f"""
{
- scu.icontag(
- "delete_img",
- border="0",
- alt="suppress",
- title="Supprimer cette annotation",
- )
- } | """
- if sco_permissions_check.can_suppress_annotation(annot.id)
- else ""
- )
- author = User.query.filter_by(user_name=annot.author).first()
- annotations_list.append(
- f"""Le {annot.date.strftime("%d/%m/%Y") if annot.date else "?"}
- par {author.get_prenomnom() if author else "?"} :
- {annot.comment or ""} | {del_link}
- """
- )
- info["liste_annotations"] = "\n".join(annotations_list)
# fiche admission
infos_admission = _infos_admission(etud, restrict_etud_data)
has_adm_notes = any(
@@ -442,11 +418,7 @@ def fiche_etud(etudid=None):
"""
else:
info["debouche_html"] = "" # pas de boite "devenir"
- #
- if info["liste_annotations"]:
- info["tit_anno"] = 'Annotations
'
- else:
- info["tit_anno"] = ""
+
# Inscriptions
info[
"inscriptions_mkup"
@@ -517,7 +489,9 @@ def fiche_etud(etudid=None):
)
info_naissance = (
- f"""Né{etud.e} le : | {info["info_naissance"]} |
"""
+ f"""Né{etud.e} le : |
+ {info["info_naissance"]} |
+ """
if info["info_naissance"]
else ""
)
@@ -538,6 +512,35 @@ def fiche_etud(etudid=None):
"""
)
+ info["annotations_mkup"] = (
+ f"""
+
+ """
+ if not restrict_etud_data
+ else ""
+ )
+
tmpl = (
"""
@@ -564,27 +567,7 @@ def fiche_etud(etudid=None):
%(debouche_html)s
-
-%(tit_anno)s
-
-
-
-
+%(annotations_mkup)s
code NIP: %(code_nip)s
@@ -613,31 +596,41 @@ def fiche_etud(etudid=None):
def _format_adresse(adresse: Adresse | None) -> dict:
"""{ "telephonestr" : ..., "telephonemobilestr" : ... } (formats html)"""
d = {
- "telephonestr": ("Tél.: " + scu.format_telephone(adresse.telephone))
- if (adresse and adresse.telephone)
- else "",
+ "telephonestr": (
+ ("Tél.: " + scu.format_telephone(adresse.telephone))
+ if (adresse and adresse.telephone)
+ else ""
+ ),
"telephonemobilestr": (
- "Mobile: " + scu.format_telephone(adresse.telephonemobile)
- )
- if (adresse and adresse.telephonemobile)
- else "",
+ ("Mobile: " + scu.format_telephone(adresse.telephonemobile))
+ if (adresse and adresse.telephonemobile)
+ else ""
+ ),
# e-mail:
- "email_link": ", ".join(
- [
- f"""{m}"""
- for m in [adresse.email, adresse.emailperso]
- if m
- ]
- )
- if adresse and (adresse.email or adresse.emailperso)
- else "",
- "domicile": (adresse.domicile or "")
- if adresse
- and (adresse.domicile or adresse.codepostaldomicile or adresse.villedomicile)
- else "inconnue",
- "paysdomicile": f"{sco_etud.format_pays(adresse.paysdomicile)}"
- if adresse and adresse.paysdomicile
- else "",
+ "email_link": (
+ ", ".join(
+ [
+ f"""{m}"""
+ for m in [adresse.email, adresse.emailperso]
+ if m
+ ]
+ )
+ if adresse and (adresse.email or adresse.emailperso)
+ else ""
+ ),
+ "domicile": (
+ (adresse.domicile or "")
+ if adresse
+ and (
+ adresse.domicile or adresse.codepostaldomicile or adresse.villedomicile
+ )
+ else "inconnue"
+ ),
+ "paysdomicile": (
+ f"{sco_etud.format_pays(adresse.paysdomicile)}"
+ if adresse and adresse.paysdomicile
+ else ""
+ ),
}
d["telephones"] = (
f"
{d['telephonestr']} {d['telephonemobilestr']}"
@@ -680,15 +673,15 @@ def _infos_admission(etud: Identite, restrict_etud_data: bool) -> dict:
"info_lycee": info_lycee,
"rapporteur": etud.admission.rapporteur if not restrict_etud_data else "",
"rap": rap,
- "commentaire": (etud.admission.commentaire or "")
- if not restrict_etud_data
- else "",
- "classement": (etud.admission.classement or "")
- if not restrict_etud_data
- else "",
- "type_admission": (etud.admission.type_admission or "")
- if not restrict_etud_data
- else "",
+ "commentaire": (
+ (etud.admission.commentaire or "") if not restrict_etud_data else ""
+ ),
+ "classement": (
+ (etud.admission.classement or "") if not restrict_etud_data else ""
+ ),
+ "type_admission": (
+ (etud.admission.type_admission or "") if not restrict_etud_data else ""
+ ),
"math": (etud.admission.math or "") if not restrict_etud_data else "",
"physique": (etud.admission.physique or "") if not restrict_etud_data else "",
"anglais": (etud.admission.anglais or "") if not restrict_etud_data else "",
@@ -696,6 +689,39 @@ def _infos_admission(etud: Identite, restrict_etud_data: bool) -> dict:
}
+def get_html_annotations_list(etud: Identite) -> list[str]:
+ """Liste de chaînes html décrivant les annotations."""
+ html_annotations_list = []
+ annotations = EtudAnnotation.query.filter_by(etudid=etud.id).order_by(
+ sa.desc(EtudAnnotation.date)
+ )
+ for annot in annotations:
+ del_link = (
+ f"""{
+ scu.icontag(
+ "delete_img",
+ border="0",
+ alt="suppress",
+ title="Supprimer cette annotation",
+ )
+ } | """
+ if sco_permissions_check.can_suppress_annotation(annot.id)
+ else ""
+ )
+
+ author = User.query.filter_by(user_name=annot.author).first()
+ html_annotations_list.append(
+ f"""Le {
+ annot.date.strftime("%d/%m/%Y") if annot.date else "?"}
+ par {author.get_prenomnom() if author else "?"} :
+ {annot.comment or ""} | {del_link}
+ """
+ )
+ return html_annotations_list
+
+
def menus_etud(etudid):
"""Menu etudiant (operations sur l'etudiant)"""
authuser = current_user