Bulletin BUT: n'affiche que les UE du parcours de l'étudiant.

This commit is contained in:
Emmanuel Viennet 2022-06-02 10:48:28 +02:00
parent ad5bdd03d1
commit 2b2fb80403
4 changed files with 20 additions and 9 deletions

View File

@ -274,6 +274,13 @@ class BulletinBUT:
etat_inscription = etud.inscription_etat(formsemestre.id)
nb_inscrits = self.res.get_inscriptions_counts()[scu.INSCRIT]
published = (not formsemestre.bul_hide_xml) or force_publishing
if formsemestre.formation.referentiel_competence is None:
etud_ues_ids = {
ue.id for ue in res.ues if res.modimpls_in_ue(ue.id, etud.id)
}
else:
etud_ues_ids = res.etud_ues_ids(etud.id)
d = {
"version": "0",
"type": "BUT",
@ -365,10 +372,7 @@ class BulletinBUT:
)
for ue in res.ues
# si l'UE comporte des modules auxquels on est inscrit:
if (
(ue.type == UE_SPORT)
or self.res.modimpls_in_ue(ue.id, etud.id)
)
if ((ue.type == UE_SPORT) or ue.id in etud_ues_ids)
},
"semestre": semestre_infos,
},

View File

@ -6,6 +6,7 @@
"""Résultats semestres BUT
"""
from collections.abc import Generator
import time
import numpy as np
import pandas as pd
@ -216,9 +217,13 @@ class ResultatsSemestreBUT(NotesTableCompat):
]
return ues_inscr_parcours_df
def etud_ues(self, etudid: int) -> list[int]:
def etud_ues_ids(self, etudid: int) -> list[int]:
"""Liste des id d'UE auxquelles l'étudiant est inscrit (sans bonus).
(surchargée en BUT pour prendre en compte les parcours)
"""
s = self.ues_inscr_parcours_df.loc[etudid]
return s.index[s.notna()]
def etud_ues(self, etudid: int) -> Generator[UniteEns]:
"""Liste des UE auxquelles l'étudiant est inscrit (sans bonus)."""
return (UniteEns.query.get(ue_id) for ue_id in self.etud_ues_ids(etudid))

View File

@ -112,7 +112,7 @@ class ResultatsSemestre(ResultatsCache):
"dict { etudid : indice dans les inscrits }"
return {e.id: idx for idx, e in enumerate(self.etuds)}
def etud_ues(self, etudid: int) -> list[int]:
def etud_ues_ids(self, etudid: int) -> list[int]:
"""Liste des UE auxquelles l'etudiant est inscrit, sans bonus
(surchargée en BUT pour prendre en compte les parcours)
"""
@ -630,7 +630,7 @@ class ResultatsSemestre(ResultatsCache):
f"_{col_id}_target_attrs"
] = f""" title="{modimpl.module.titre} ({nom_resp})" """
modimpl_ids.add(modimpl.id)
nb_ues_etud_parcours = len(self.etud_ues(etudid))
nb_ues_etud_parcours = len(self.etud_ues_ids(etudid))
ue_valid_txt = (
ue_valid_txt_html
) = f"{nb_ues_validables}/{nb_ues_etud_parcours}"

View File

@ -2,10 +2,12 @@
<h2>{% if not read_only %}Édition des c{% else %}C{%endif%}oefficients des modules vers les UEs</h2>
<div class="help">
{% if not read_only %}
Double-cliquer pour changer une valeur.
<p>Double-cliquer pour changer une valeur.
Les valeurs sont automatiquement enregistrées au fur et à mesure.
</p>
{% endif %}
<p>Chaque ligne représente une ressource ou SAÉ, et chaque colonne une Unité d'Enseignement (UE).
</p>
</div>
<form class="semestre_selector">Semestre:
<select onchange="this.form.submit()"" name="semestre_idx" id="semestre_idx">