forked from ScoDoc/ScoDoc
Fixed bug (migration to Numpy 2.0) and warnings. All tests OK.
This commit is contained in:
parent
bee6d10c90
commit
fc036705e8
@ -445,9 +445,10 @@ class User(UserMixin, ScoDocModel):
|
||||
|
||||
def set_roles(self, roles, dept):
|
||||
"set roles in the given dept"
|
||||
self.user_roles = [
|
||||
UserRole(user=self, role=r, dept=dept) for r in roles if isinstance(r, Role)
|
||||
]
|
||||
self.user_roles = []
|
||||
for r in roles:
|
||||
if isinstance(r, Role):
|
||||
self.add_role(r, dept)
|
||||
|
||||
def get_roles(self):
|
||||
"iterator on my roles"
|
||||
|
@ -541,17 +541,16 @@ def load_evaluations_poids(moduleimpl_id: int) -> tuple[pd.DataFrame, list]:
|
||||
ue_ids = [ue.id for ue in ues]
|
||||
evaluation_ids = [evaluation.id for evaluation in modimpl.evaluations]
|
||||
evals_poids = pd.DataFrame(columns=ue_ids, index=evaluation_ids, dtype=float)
|
||||
if (
|
||||
modimpl.module.module_type == ModuleType.RESSOURCE
|
||||
or modimpl.module.module_type == ModuleType.SAE
|
||||
):
|
||||
if modimpl.module.module_type in (ModuleType.RESSOURCE, ModuleType.SAE):
|
||||
for ue_poids in EvaluationUEPoids.query.join(
|
||||
EvaluationUEPoids.evaluation
|
||||
).filter_by(moduleimpl_id=moduleimpl_id):
|
||||
try:
|
||||
evals_poids.loc[ue_poids.evaluation_id, ue_poids.ue_id] = ue_poids.poids
|
||||
except KeyError:
|
||||
pass # poids vers des UE qui n'existent plus ou sont dans un autre semestre...
|
||||
if (
|
||||
ue_poids.evaluation_id in evals_poids.index
|
||||
and ue_poids.ue_id in evals_poids.columns
|
||||
):
|
||||
evals_poids.at[ue_poids.evaluation_id, ue_poids.ue_id] = ue_poids.poids
|
||||
# ignore poids vers des UEs qui n'existent plus ou sont dans un autre semestre...
|
||||
|
||||
# Initialise poids non enregistrés:
|
||||
default_poids = (
|
||||
|
@ -92,7 +92,7 @@ def df_load_module_coefs(formation_id: int, semestre_idx: int = None) -> pd.Data
|
||||
|
||||
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.at[mod_coef.ue_id, mod_coef.module_id] = mod_coef.coef
|
||||
# silently ignore coefs associated to other modules (ie when module_type is changed)
|
||||
|
||||
# Initialisation des poids non fixés:
|
||||
@ -138,14 +138,16 @@ def df_load_modimpl_coefs(
|
||||
)
|
||||
|
||||
for mod_coef in mod_coefs:
|
||||
try:
|
||||
modimpl_coefs_df.loc[mod_coef.ue_id, mod2impl[mod_coef.module_id]] = (
|
||||
if (
|
||||
mod_coef.ue_id in modimpl_coefs_df.index
|
||||
and mod2impl[mod_coef.module_id] in modimpl_coefs_df.columns
|
||||
):
|
||||
modimpl_coefs_df.at[mod_coef.ue_id, mod2impl[mod_coef.module_id]] = (
|
||||
mod_coef.coef
|
||||
)
|
||||
except IndexError:
|
||||
# il peut y avoir en base des coefs sur des modules ou UE
|
||||
# qui ont depuis été retirés de la formation
|
||||
pass
|
||||
# qui ont depuis été retirés de la formation : on ignore ces coefs
|
||||
|
||||
# Initialisation des poids non fixés:
|
||||
# 0 pour modules normaux, 1. pour bonus (car par défaut, on veut qu'un bonus agisse
|
||||
# sur toutes les UE)
|
||||
@ -299,7 +301,11 @@ def compute_ue_moys_apc(
|
||||
)
|
||||
# Les "dispenses" sont très peu nombreuses et traitées en python:
|
||||
for dispense_ue in dispense_ues:
|
||||
etud_moy_ue_df[dispense_ue[1]][dispense_ue[0]] = 0.0
|
||||
if (
|
||||
dispense_ue[0] in etud_moy_ue_df.columns
|
||||
and dispense_ue[1] in etud_moy_ue_df.index
|
||||
):
|
||||
etud_moy_ue_df.at[dispense_ue[1], dispense_ue[0]] = 0.0
|
||||
|
||||
return etud_moy_ue_df
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user