forked from ScoDoc/ScoDoc
Bonus Aisne St Quentin + fix bonus Ville d'Avray
This commit is contained in:
parent
546e10c83a
commit
5aa896f793
@ -228,6 +228,10 @@ class BonusSportAdditif(BonusSport):
|
|||||||
else: # necessaire pour éviter bonus négatifs !
|
else: # necessaire pour éviter bonus négatifs !
|
||||||
bonus_moy_arr = np.clip(bonus_moy_arr, 0.0, 20.0, out=bonus_moy_arr)
|
bonus_moy_arr = np.clip(bonus_moy_arr, 0.0, 20.0, out=bonus_moy_arr)
|
||||||
|
|
||||||
|
self.bonus_additif(bonus_moy_arr)
|
||||||
|
|
||||||
|
def bonus_additif(self, bonus_moy_arr: np.array):
|
||||||
|
"Set bonus_ues et bonus_moy_gen"
|
||||||
# en APC, bonus_moy_arr est (nb_etuds, nb_ues_non_bonus)
|
# en APC, bonus_moy_arr est (nb_etuds, nb_ues_non_bonus)
|
||||||
if self.formsemestre.formation.is_apc():
|
if self.formsemestre.formation.is_apc():
|
||||||
# Bonus sur les UE et None sur moyenne générale
|
# Bonus sur les UE et None sur moyenne générale
|
||||||
@ -306,6 +310,47 @@ class BonusDirect(BonusSportAdditif):
|
|||||||
proportion_point = 1.0
|
proportion_point = 1.0
|
||||||
|
|
||||||
|
|
||||||
|
class BonusAisneStQuentin(BonusSportAdditif):
|
||||||
|
"""Calcul bonus modules optionels (sport, culture), règle IUT Aisne St Quentin
|
||||||
|
|
||||||
|
<p>Les étudiants de l'IUT peuvent suivre des enseignements optionnels
|
||||||
|
de l'Université de St Quentin non rattachés à une unité d'enseignement.
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>Si la note est >= 10 et < 12.1, bonus de 0.1 point</li>
|
||||||
|
<li>Si la note est >= 12.1 et < 14.1, bonus de 0.2 point</li>
|
||||||
|
<li>Si la note est >= 14.1 et < 16.1, bonus de 0.3 point</li>
|
||||||
|
<li>Si la note est >= 16.1 et < 18.1, bonus de 0.4 point</li>
|
||||||
|
<li>Si la note est >= 18.1, bonus de 0.5 point</li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
Ce bonus s'ajoute à la moyenne générale du semestre déjà obtenue par
|
||||||
|
l'étudiant (en BUT, s'ajoute à la moyenne de chaque UE).
|
||||||
|
</p>
|
||||||
|
"""
|
||||||
|
|
||||||
|
name = "bonus_iutstq"
|
||||||
|
displayed_name = "IUT de Saint-Quentin"
|
||||||
|
|
||||||
|
def compute_bonus(self, sem_modimpl_moys_inscrits, modimpl_coefs_etuds_no_nan):
|
||||||
|
"""calcul du bonus"""
|
||||||
|
if 0 in sem_modimpl_moys_inscrits.shape:
|
||||||
|
# pas d'étudiants ou pas d'UE ou pas de module...
|
||||||
|
return
|
||||||
|
# Calcule moyenne pondérée des notes de sport:
|
||||||
|
bonus_moy_arr = np.sum(
|
||||||
|
sem_modimpl_moys_inscrits * modimpl_coefs_etuds_no_nan, axis=1
|
||||||
|
) / np.sum(modimpl_coefs_etuds_no_nan, axis=1)
|
||||||
|
bonus_moy_arr[bonus_moy_arr < 10.0] = 0.0
|
||||||
|
bonus_moy_arr[bonus_moy_arr >= 18.1] = 0.5
|
||||||
|
bonus_moy_arr[bonus_moy_arr >= 16.1] = 0.4
|
||||||
|
bonus_moy_arr[bonus_moy_arr >= 14.1] = 0.3
|
||||||
|
bonus_moy_arr[bonus_moy_arr >= 12.1] = 0.2
|
||||||
|
bonus_moy_arr[bonus_moy_arr >= 10] = 0.1
|
||||||
|
|
||||||
|
self.bonus_additif(bonus_moy_arr)
|
||||||
|
|
||||||
|
|
||||||
class BonusAmiens(BonusSportAdditif):
|
class BonusAmiens(BonusSportAdditif):
|
||||||
"""Bonus IUT Amiens pour les modules optionnels (sport, culture, ...).
|
"""Bonus IUT Amiens pour les modules optionnels (sport, culture, ...).
|
||||||
|
|
||||||
@ -774,21 +819,19 @@ class BonusVilleAvray(BonusSport):
|
|||||||
|
|
||||||
def compute_bonus(self, sem_modimpl_moys_inscrits, modimpl_coefs_etuds_no_nan):
|
def compute_bonus(self, sem_modimpl_moys_inscrits, modimpl_coefs_etuds_no_nan):
|
||||||
"""calcul du bonus"""
|
"""calcul du bonus"""
|
||||||
|
if 0 in sem_modimpl_moys_inscrits.shape:
|
||||||
|
# pas d'étudiants ou pas d'UE ou pas de module...
|
||||||
|
return
|
||||||
# Calcule moyenne pondérée des notes de sport:
|
# Calcule moyenne pondérée des notes de sport:
|
||||||
bonus_moy_arr = np.sum(
|
bonus_moy_arr = np.sum(
|
||||||
sem_modimpl_moys_inscrits * modimpl_coefs_etuds_no_nan, axis=1
|
sem_modimpl_moys_inscrits * modimpl_coefs_etuds_no_nan, axis=1
|
||||||
) / np.sum(modimpl_coefs_etuds_no_nan, axis=1)
|
) / np.sum(modimpl_coefs_etuds_no_nan, axis=1)
|
||||||
bonus_moy_arr[bonus_moy_arr >= 10.0] = 0.1
|
bonus_moy_arr[bonus_moy_arr < 10.0] = 0.0
|
||||||
bonus_moy_arr[bonus_moy_arr >= 12.0] = 0.2
|
|
||||||
bonus_moy_arr[bonus_moy_arr >= 16.0] = 0.3
|
bonus_moy_arr[bonus_moy_arr >= 16.0] = 0.3
|
||||||
|
bonus_moy_arr[bonus_moy_arr >= 12.0] = 0.2
|
||||||
|
bonus_moy_arr[bonus_moy_arr >= 10.0] = 0.1
|
||||||
|
|
||||||
# Bonus moyenne générale, et 0 sur les UE
|
self.bonus_additif(bonus_moy_arr)
|
||||||
self.bonus_moy_gen = pd.Series(bonus_moy_arr, index=self.etuds_idx, dtype=float)
|
|
||||||
if self.bonus_max is not None:
|
|
||||||
# Seuil: bonus (sur moy. gen.) limité à bonus_max points
|
|
||||||
self.bonus_moy_gen = self.bonus_moy_gen.clip(upper=self.bonus_max)
|
|
||||||
|
|
||||||
# Laisse bonus_ues à None, en APC le bonus moy. gen. sera réparti sur les UEs.
|
|
||||||
|
|
||||||
|
|
||||||
class BonusIUTV(BonusSportAdditif):
|
class BonusIUTV(BonusSportAdditif):
|
||||||
|
Loading…
Reference in New Issue
Block a user