Fix formsemestre_pvjury html (classic)

This commit is contained in:
Emmanuel Viennet 2023-12-15 18:53:38 +01:00
parent d132c54a51
commit 48bce33329
2 changed files with 29 additions and 11 deletions

View File

@ -52,20 +52,21 @@ class SetTag(pe_tagtable.TableTag):
# ------------------------------------------------------------------------------------------------------------------- # -------------------------------------------------------------------------------------------------------------------
def __init__(self, nom_combinaison, parcours): def __init__(self, nom_combinaison, parcours):
pe_tagtable.TableTag.__init__(self, nom=nom_combinaison) pe_tagtable.TableTag.__init__(self, nom=nom_combinaison)
self.combinaison = nom_combinaison self.combinaison = nom_combinaison
self.parcours = parcours # Le groupe de semestres/parcours à aggréger self.parcours = parcours # Le groupe de semestres/parcours à aggréger
# ------------------------------------------------------------------------------------------- # -------------------------------------------------------------------------------------------
def set_Etudiants(self, etudiants, juryPEDict, etudInfoDict, nom_sem_final=None): def set_Etudiants(
self, etudiants: list[dict], juryPEDict, etudInfoDict, nom_sem_final=None
):
"""Détermine la liste des étudiants à prendre en compte, en partant de """Détermine la liste des étudiants à prendre en compte, en partant de
la liste en paramètre et en vérifiant qu'ils ont tous un parcours valide.""" la liste en paramètre et en vérifiant qu'ils ont tous un parcours valide."""
if nom_sem_final: if nom_sem_final:
self.nom += "_" + nom_sem_final self.nom += "_" + nom_sem_final
for etudid in etudiants: for etudid in etudiants:
parcours_incomplet = ( parcours_incomplet = (
sum([juryPEDict[etudid][nom_sem] == None for nom_sem in self.parcours]) sum([juryPEDict[etudid][nom_sem] is None for nom_sem in self.parcours])
> 0 > 0
) # manque-t-il des formsemestre_id validant aka l'étudiant n'a pas été inscrit dans tous les semestres de l'aggrégat ) # manque-t-il des formsemestre_id validant aka l'étudiant n'a pas été inscrit dans tous les semestres de l'aggrégat
if not parcours_incomplet: if not parcours_incomplet:
@ -209,7 +210,6 @@ class SetTagInterClasse(pe_tagtable.TableTag):
# ------------------------------------------------------------------------------------------------------------------- # -------------------------------------------------------------------------------------------------------------------
def __init__(self, nom_combinaison, diplome): def __init__(self, nom_combinaison, diplome):
pe_tagtable.TableTag.__init__(self, nom=f"{nom_combinaison}_{diplome or ''}") pe_tagtable.TableTag.__init__(self, nom=f"{nom_combinaison}_{diplome or ''}")
self.combinaison = nom_combinaison self.combinaison = nom_combinaison
self.parcoursDict = {} self.parcoursDict = {}

View File

@ -247,9 +247,7 @@ def formsemestre_pvjury(formsemestre_id, fmt="html", publish=True):
titles=titles, titles=titles,
columns_ids=columns_ids, columns_ids=columns_ids,
filename=scu.make_filename("decisions " + sem["titreannee"]), filename=scu.make_filename("decisions " + sem["titreannee"]),
origin="Généré par %s le " % scu.sco_version.SCONAME origin=f"Généré par {scu.sco_version.SCONAME} le {scu.timedate_human_repr()}",
+ scu.timedate_human_repr()
+ "",
caption="Décisions jury pour " + sem["titreannee"], caption="Décisions jury pour " + sem["titreannee"],
html_class="table_leftalign", html_class="table_leftalign",
html_sortable=True, html_sortable=True,
@ -292,7 +290,8 @@ def formsemestre_pvjury(formsemestre_id, fmt="html", publish=True):
# Légende des codes # Légende des codes
codes = list(counts.keys()) codes = list(counts.keys())
codes.sort() codes.sort()
H.append("<h3>Explication des codes</h3>")
H.append("""<div class="codes"><h3>Explication des codes</h3>""")
lines = [] lines = []
for code in codes: for code in codes:
lines.append( lines.append(
@ -308,12 +307,31 @@ def formsemestre_pvjury(formsemestre_id, fmt="html", publish=True):
rows=lines, rows=lines,
titles={"code": "Code", "count": "Nombre", "expl": ""}, titles={"code": "Code", "count": "Nombre", "expl": ""},
columns_ids=("code", "count", "expl"), columns_ids=("code", "count", "expl"),
html_class="table_leftalign", html_class="table_leftalign codes-jury",
html_class_ignore_default=True, # pas une DataTable
html_sortable=True, html_sortable=True,
html_with_td_classes=True,
preferences=sco_preferences.SemPreferences(formsemestre_id), preferences=sco_preferences.SemPreferences(formsemestre_id),
).html() ).html()
) )
H.append("<p></p>") # force space at bottom H.append(
"""<style>
div.codes {
margin-bottom: 12px;
}
table.codes-jury th, table.codes-jury td {
padding: 4px 8px 4px 8px;
}
table.codes-jury td {
background-color: #CCCCCC;
}
table.codes-jury td.count {
text-align: right;
}
</style>
"""
)
H.append("</div>") # /codes
return "\n".join(H) + footer return "\n".join(H) + footer