forked from ScoDoc/ScoDoc
Update opolka/ScoDoc from ScoDoc/ScoDoc #2
@ -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 = {}
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user