From a0d8f89b182bebe69a6f7ed4877fa2cdf547dc54 Mon Sep 17 00:00:00 2001 From: Emmanuel Viennet Date: Thu, 3 Mar 2022 21:17:03 +0100 Subject: [PATCH 1/3] Clippe les moyennes finales dans [0,20] --- app/comp/res_but.py | 4 +++- app/comp/res_classic.py | 6 +++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/app/comp/res_but.py b/app/comp/res_but.py index 20e63cba01..7bd79463fb 100644 --- a/app/comp/res_but.py +++ b/app/comp/res_but.py @@ -98,7 +98,9 @@ class ResultatsSemestreBUT(NotesTableCompat): self.bonus_ues = bonus.get_bonus_ues() if self.bonus_ues is not None: self.etud_moy_ue += self.bonus_ues # somme les dataframes - self.etud_moy_ue.clip(lower=0.0, upper=20.0, inplace=True) + + # Clippe toutes les moyennes d'UE dans [0,20] + self.etud_moy_ue.clip(lower=0.0, upper=20.0, inplace=True) # Moyenne générale indicative: # (note: le bonus sport a déjà été appliqué aux moyennes d'UE, et impacte diff --git a/app/comp/res_classic.py b/app/comp/res_classic.py index ecc1e5004d..b36eaaf6c8 100644 --- a/app/comp/res_classic.py +++ b/app/comp/res_classic.py @@ -125,12 +125,16 @@ class ResultatsSemestreClassic(NotesTableCompat): # Applique le bonus moyenne générale renvoyé self.etud_moy_gen += bonus_mg - self.etud_moy_gen.clip(lower=0.0, upper=20.0, inplace=True) # compat nt, utilisé pour l'afficher sur les bulletins: self.bonus = bonus_mg + # --- UE capitalisées self.apply_capitalisation() + # Clippe toutes les moyennes dans [0,20] + self.etud_moy_ue.clip(lower=0.0, upper=20.0, inplace=True) + self.etud_moy_gen.clip(lower=0.0, upper=20.0, inplace=True) + # --- Classements: self.compute_rangs() From 3b7370f6dfb1f8aad9457acc8c62b5bd7ab10fda Mon Sep 17 00:00:00 2001 From: Emmanuel Viennet Date: Thu, 3 Mar 2022 21:20:54 +0100 Subject: [PATCH 2/3] =?UTF-8?q?Bonus=20Brest=20(identique=20=C3=A0=20Borde?= =?UTF-8?q?aux)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/comp/bonus_spo.py | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/app/comp/bonus_spo.py b/app/comp/bonus_spo.py index 1cbe4e59f5..b272194139 100644 --- a/app/comp/bonus_spo.py +++ b/app/comp/bonus_spo.py @@ -456,8 +456,8 @@ class BonusBezier(BonusSportAdditif): class BonusBordeaux1(BonusSportMultiplicatif): - """Calcul bonus modules optionnels (sport, culture), règle IUT Bordeaux 1, sur moyenne générale - et UE. + """Calcul bonus modules optionnels (sport, culture), règle IUT Bordeaux 1, + sur moyenne générale et UEs.

Les étudiants de l'IUT peuvent suivre des enseignements optionnels de l'Université Bordeaux 1 (sport, théâtre) non rattachés à une unité d'enseignement. @@ -477,6 +477,29 @@ class BonusBordeaux1(BonusSportMultiplicatif): amplitude = 0.005 +# Exactement le même que Bordeaux: +class BonusBrest(BonusSportMultiplicatif): + """Calcul bonus modules optionnels (sport, culture), règle IUT de Brest, + sur moyenne générale et UEs. +

+ Les étudiants de l'IUT peuvent suivre des enseignements optionnels + de l'Université (sport, théâtre) non rattachés à une unité d'enseignement. +

+ Chaque point au-dessus de 10 sur 20 obtenus dans cet enseignement correspond à un % + qui augmente la moyenne de chaque UE et la moyenne générale.
+ Formule : pourcentage = (points au dessus de 10) / 2 +

+ Par exemple : sport 13/20 : chaque UE sera multipliée par 1+0,015, ainsi que la moyenne générale. +

+ """ + + name = "bonus_iut_brest" + displayed_name = "IUT de Brest" + classic_use_bonus_ues = True # s'applique aux UEs en DUT et LP + seuil_moy_gen = 10.0 + amplitude = 0.005 + + class BonusCachan1(BonusSportAdditif): """Calcul bonus optionnels (sport, culture), règle IUT de Cachan 1. From bcbace01208bfc91680b4406b503d645f1db9481 Mon Sep 17 00:00:00 2001 From: Emmanuel Viennet Date: Thu, 3 Mar 2022 23:02:24 +0100 Subject: [PATCH 3/3] N'affiche pas les UE sans inscriptions sur les buleltins classiques --- app/__init__.py | 4 ++-- app/comp/res_classic.py | 7 ++++++- app/scodoc/sco_bulletins.py | 4 +++- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/app/__init__.py b/app/__init__.py index 76f9471bb4..237f53ceac 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -201,7 +201,7 @@ def create_app(config_class=DevConfig): app.register_blueprint(auth_bp, url_prefix="/auth") from app.entreprises import bp as entreprises_bp - + app.register_blueprint(entreprises_bp, url_prefix="/ScoDoc/entreprises") from app.views import scodoc_bp @@ -297,7 +297,7 @@ def create_app(config_class=DevConfig): from app.scodoc.sco_bulletins_standard import BulletinGeneratorStandard from app.scodoc.sco_bulletins_ucac import BulletinGeneratorUCAC - # l'ordre est important, le premeir sera le "défaut" pour les nouveaux départements. + # l'ordre est important, le premier sera le "défaut" pour les nouveaux départements. sco_bulletins_generator.register_bulletin_class(BulletinGeneratorStandard) sco_bulletins_generator.register_bulletin_class(BulletinGeneratorLegacy) sco_bulletins_generator.register_bulletin_class(BulletinGeneratorUCAC) diff --git a/app/comp/res_classic.py b/app/comp/res_classic.py index b36eaaf6c8..91614935dc 100644 --- a/app/comp/res_classic.py +++ b/app/comp/res_classic.py @@ -146,7 +146,12 @@ class ResultatsSemestreClassic(NotesTableCompat): """La moyenne de l'étudiant dans le moduleimpl Result: valeur float (peut être NaN) ou chaîne "NI" (non inscrit ou DEM) """ - return self.modimpls_results[moduleimpl_id].etuds_moy_module.get(etudid, "NI") + try: + if self.modimpl_inscr_df[moduleimpl_id][etudid]: + return self.modimpls_results[moduleimpl_id].etuds_moy_module[etudid] + except KeyError: + pass + return "NI" def get_mod_stats(self, moduleimpl_id: int) -> dict: """Stats sur les notes obtenues dans un modimpl""" diff --git a/app/scodoc/sco_bulletins.py b/app/scodoc/sco_bulletins.py index 47947bd361..5f6f91e5b8 100644 --- a/app/scodoc/sco_bulletins.py +++ b/app/scodoc/sco_bulletins.py @@ -441,7 +441,9 @@ def _sort_mod_by_matiere(modlist, nt, etudid): return matmod -def _ue_mod_bulletin(etudid, formsemestre_id, ue_id, modimpls, nt, version): +def _ue_mod_bulletin( + etudid, formsemestre_id, ue_id, modimpls, nt: NotesTableCompat, version +): """Infos sur les modules (et évaluations) dans une UE (ajoute les informations aux modimpls) Result: liste de modules de l'UE avec les infos dans chacun (seulement ceux où l'étudiant est inscrit).