Fix #491: vérification conformité poids modules

This commit is contained in:
Emmanuel Viennet 2022-09-07 00:09:15 +02:00
parent 7fe2d605c3
commit 0f902457f6

View File

@ -433,7 +433,9 @@ def moduleimpl_is_conforme(
Un module est dit *conforme* si et seulement si la somme des poids de ses Un module est dit *conforme* si et seulement si la somme des poids de ses
évaluations vers une UE de coefficient non nul est non nulle. évaluations vers une UE de coefficient non nul est non nulle.
Argument: evals_poids: DataFrame, colonnes: UEs, Lignes: EVALs Arguments:
evals_poids: DataFrame, colonnes: UEs, Lignes: EVALs
modules_coefficients: DataFrame, cols module_id, lignes UEs
NB: les UEs dans evals_poids sont sans le bonus sport NB: les UEs dans evals_poids sont sans le bonus sport
""" """
nb_evals, nb_ues = evals_poids.shape nb_evals, nb_ues = evals_poids.shape
@ -445,12 +447,8 @@ def moduleimpl_is_conforme(
# il arrive (#bug) que le cache ne soit pas à jour... # il arrive (#bug) que le cache ne soit pas à jour...
sco_cache.invalidate_formsemestre() sco_cache.invalidate_formsemestre()
raise ScoBugCatcher("moduleimpl_is_conforme: nb ue incoherent") raise ScoBugCatcher("moduleimpl_is_conforme: nb ue incoherent")
module_evals_poids = evals_poids.transpose().sum(axis=1).to_numpy() != 0 module_evals_poids = evals_poids.transpose().sum(axis=1) != 0
check = all( return all((modules_coefficients[moduleimpl.module_id] != 0).eq(module_evals_poids))
(modules_coefficients[moduleimpl.module_id].to_numpy() != 0)
== module_evals_poids
)
return check
class ModuleImplResultsClassic(ModuleImplResults): class ModuleImplResultsClassic(ModuleImplResults):