Update opolka/ScoDoc from ScoDoc/ScoDoc #2

Merged
opolka merged 1272 commits from ScoDoc/ScoDoc:master into master 2024-05-27 09:11:04 +02:00
2 changed files with 29 additions and 11 deletions
Showing only changes of commit 48bce33329 - Show all commits

View File

@ -52,20 +52,21 @@ class SetTag(pe_tagtable.TableTag):
# -------------------------------------------------------------------------------------------------------------------
def __init__(self, nom_combinaison, parcours):
pe_tagtable.TableTag.__init__(self, nom=nom_combinaison)
self.combinaison = nom_combinaison
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
la liste en paramètre et en vérifiant qu'ils ont tous un parcours valide."""
if nom_sem_final:
self.nom += "_" + nom_sem_final
for etudid in etudiants:
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
) # 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:
@ -209,7 +210,6 @@ class SetTagInterClasse(pe_tagtable.TableTag):
# -------------------------------------------------------------------------------------------------------------------
def __init__(self, nom_combinaison, diplome):
pe_tagtable.TableTag.__init__(self, nom=f"{nom_combinaison}_{diplome or ''}")
self.combinaison = nom_combinaison
self.parcoursDict = {}

View File

@ -247,9 +247,7 @@ def formsemestre_pvjury(formsemestre_id, fmt="html", publish=True):
titles=titles,
columns_ids=columns_ids,
filename=scu.make_filename("decisions " + sem["titreannee"]),
origin="Généré par %s le " % scu.sco_version.SCONAME
+ scu.timedate_human_repr()
+ "",
origin=f"Généré par {scu.sco_version.SCONAME} le {scu.timedate_human_repr()}",
caption="Décisions jury pour " + sem["titreannee"],
html_class="table_leftalign",
html_sortable=True,
@ -292,7 +290,8 @@ def formsemestre_pvjury(formsemestre_id, fmt="html", publish=True):
# Légende des codes
codes = list(counts.keys())
codes.sort()
H.append("<h3>Explication des codes</h3>")
H.append("""<div class="codes"><h3>Explication des codes</h3>""")
lines = []
for code in codes:
lines.append(
@ -308,12 +307,31 @@ def formsemestre_pvjury(formsemestre_id, fmt="html", publish=True):
rows=lines,
titles={"code": "Code", "count": "Nombre", "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_with_td_classes=True,
preferences=sco_preferences.SemPreferences(formsemestre_id),
).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