filtre modules non BUT dans edit_modules_ue_coefs

This commit is contained in:
Emmanuel Viennet 2022-01-08 19:30:30 +01:00
parent 795ca343de
commit 0e930d5fe4

View File

@ -36,6 +36,7 @@ from app.models import UniteEns, Module, ModuleImpl, ModuleUECoef
from app.comp import moy_mod from app.comp import moy_mod
from app.models.formsemestre import FormSemestre from app.models.formsemestre import FormSemestre
from app.scodoc import sco_codes_parcours from app.scodoc import sco_codes_parcours
from app.scodoc.sco_utils import ModuleType
def df_load_module_coefs(formation_id: int, semestre_idx: int = None) -> pd.DataFrame: def df_load_module_coefs(formation_id: int, semestre_idx: int = None) -> pd.DataFrame:
@ -56,9 +57,16 @@ def df_load_module_coefs(formation_id: int, semestre_idx: int = None) -> pd.Data
.filter(UniteEns.type != sco_codes_parcours.UE_SPORT) .filter(UniteEns.type != sco_codes_parcours.UE_SPORT)
.order_by(UniteEns.semestre_idx, UniteEns.numero, UniteEns.acronyme) .order_by(UniteEns.semestre_idx, UniteEns.numero, UniteEns.acronyme)
) )
modules = Module.query.filter_by(formation_id=formation_id).order_by( modules = (
Module.query.filter_by(formation_id=formation_id)
.filter(
(Module.module_type == ModuleType.RESSOURCE)
| (Module.module_type == ModuleType.SAE)
)
.order_by(
Module.semestre_id, Module.module_type.desc(), Module.numero, Module.code Module.semestre_id, Module.module_type.desc(), Module.numero, Module.code
) )
)
if semestre_idx is not None: if semestre_idx is not None:
ues = ues.filter_by(semestre_idx=semestre_idx) ues = ues.filter_by(semestre_idx=semestre_idx)
modules = modules.filter_by(semestre_id=semestre_idx) modules = modules.filter_by(semestre_id=semestre_idx)
@ -76,7 +84,9 @@ def df_load_module_coefs(formation_id: int, semestre_idx: int = None) -> pd.Data
query = query.filter(UniteEns.semestre_idx == semestre_idx) query = query.filter(UniteEns.semestre_idx == semestre_idx)
for mod_coef in query: for mod_coef in query:
if mod_coef.module_id in module_coefs_df:
module_coefs_df[mod_coef.module_id][mod_coef.ue_id] = mod_coef.coef module_coefs_df[mod_coef.module_id][mod_coef.ue_id] = mod_coef.coef
# silently ignore coefs associated to other modules (ie when module_type is changed)
module_coefs_df.fillna(value=0, inplace=True) module_coefs_df.fillna(value=0, inplace=True)
@ -225,7 +235,7 @@ def compute_ue_moys_classic(
ues: list, ues: list,
modimpl_inscr_df: pd.DataFrame, modimpl_inscr_df: pd.DataFrame,
modimpl_coefs: np.array, modimpl_coefs: np.array,
) -> pd.DataFrame: ) -> tuple:
"""Calcul de la moyenne d'UE en mode classique. """Calcul de la moyenne d'UE en mode classique.
La moyenne d'UE est un nombre (note/20), ou NI ou NA ou ERR La moyenne d'UE est un nombre (note/20), ou NI ou NA ou ERR
NI non inscrit à (au moins un) module de cette UE NI non inscrit à (au moins un) module de cette UE