forked from ScoDoc/ScoDoc
Bonus pour masters Institut Galilée (USPN)
This commit is contained in:
parent
0322603a22
commit
fda11298b4
@ -153,8 +153,8 @@ def evaluation_set_notes(evaluation_id: int):
|
||||
The request content type should be "application/json",
|
||||
and contains:
|
||||
{
|
||||
'notes' : [ (etudid, value), ... ],
|
||||
'comment' : opetional string
|
||||
'notes' : [ [etudid, value], ... ],
|
||||
'comment' : optional string
|
||||
}
|
||||
Result:
|
||||
- nb_changed: nombre de notes changées
|
||||
|
@ -18,7 +18,7 @@ import pandas as pd
|
||||
|
||||
from flask import g
|
||||
|
||||
from app.scodoc.codes_cursus import UE_SPORT
|
||||
from app.scodoc.codes_cursus import UE_SPORT, UE_STANDARD
|
||||
from app.scodoc.codes_cursus import CursusDUT, CursusDUTMono
|
||||
from app.scodoc.sco_utils import ModuleType
|
||||
|
||||
@ -740,6 +740,7 @@ class BonusGrenobleIUT1(BonusSportMultiplicatif):
|
||||
|
||||
name = "bonus_iut1grenoble_2017"
|
||||
displayed_name = "IUT de Grenoble 1"
|
||||
|
||||
# C'est un bonus "multiplicatif": on l'exprime en additif,
|
||||
# sur chaque moyenne d'UE m_0
|
||||
# Augmenter de 5% correspond à multiplier par a=1.05
|
||||
@ -782,6 +783,7 @@ class BonusIUTRennes1(BonusSportAdditif):
|
||||
seuil_moy_gen = 10.0
|
||||
proportion_point = 1 / 20.0
|
||||
classic_use_bonus_ues = False
|
||||
|
||||
# S'applique aussi en classic, sur la moy. gen.
|
||||
def compute_bonus(self, sem_modimpl_moys_inscrits, modimpl_coefs_etuds_no_nan):
|
||||
"""calcul du bonus"""
|
||||
@ -1336,6 +1338,7 @@ class BonusStNazaire(BonusSport):
|
||||
classic_use_bonus_ues = True # s'applique aux UEs en DUT et LP
|
||||
amplitude = 0.01 / 4 # 4pt => 1%
|
||||
factor_max = 0.1 # 10% max
|
||||
|
||||
# Modifié 2022-11-29: calculer chaque bonus
|
||||
# (de 1 à 3 modules) séparément.
|
||||
def compute_bonus(self, sem_modimpl_moys_inscrits, modimpl_coefs_etuds_no_nan):
|
||||
@ -1533,6 +1536,62 @@ class BonusIUTV(BonusSportAdditif):
|
||||
# c'est le bonus par défaut: aucune méthode à surcharger
|
||||
|
||||
|
||||
class BonusMastersUSPNIG(BonusSportAdditif):
|
||||
"""Calcul bonus modules optionnels (sport, culture), règle Masters de l'Institut Galilée (USPN)
|
||||
|
||||
Les étudiants peuvent suivre des enseignements optionnels
|
||||
de l'USPN (sports, musique, deuxième langue, culture, etc) dans une
|
||||
UE libre. Les points au-dessus de 10 sur 20 obtenus dans cette UE
|
||||
libre sont ajoutés au total des points obtenus pour les UE obligatoires
|
||||
du semestre concerné.
|
||||
"""
|
||||
|
||||
name = "bonus_masters__uspn_ig"
|
||||
displayed_name = "Masters de l'Institut Galilée (USPN)"
|
||||
proportion_point = 1.0
|
||||
seuil_moy_gen = 10.0
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
formsemestre: "FormSemestre",
|
||||
sem_modimpl_moys: np.array,
|
||||
ues: list,
|
||||
modimpl_inscr_df: pd.DataFrame,
|
||||
modimpl_coefs: np.array,
|
||||
etud_moy_gen,
|
||||
etud_moy_ue,
|
||||
):
|
||||
# Pour ce bonus, il nous faut la somme des coefs des modules non bonus
|
||||
# du formsemestre (et non auxquels les étudiants sont inscrits !)
|
||||
self.sum_coefs = sum(
|
||||
[
|
||||
m.module.coefficient
|
||||
for m in formsemestre.modimpls_sorted
|
||||
if (m.module.module_type == ModuleType.STANDARD)
|
||||
and (m.module.ue.type == UE_STANDARD)
|
||||
]
|
||||
)
|
||||
super().__init__(
|
||||
formsemestre,
|
||||
sem_modimpl_moys,
|
||||
ues,
|
||||
modimpl_inscr_df,
|
||||
modimpl_coefs,
|
||||
etud_moy_gen,
|
||||
etud_moy_ue,
|
||||
)
|
||||
# Bonus sur la moyenne générale seulement
|
||||
# On a dans bonus_moy_arr le bonus additif classique
|
||||
# Sa valeur sera appliquée comme moy_gen += bonus_moy_gen
|
||||
# or ici on veut
|
||||
# moy_gen = (somme des notes + bonus_moy_arr) / somme des coefs
|
||||
# moy_gen += bonus_moy_arr / somme des coefs
|
||||
|
||||
self.bonus_moy_gen = (
|
||||
None if self.bonus_moy_gen is None else self.bonus_moy_gen / self.sum_coefs
|
||||
)
|
||||
|
||||
|
||||
def get_bonus_class_dict(start=BonusSport, d=None):
|
||||
"""Dictionnaire des classes de bonus
|
||||
(liste les sous-classes de BonusSport ayant un nom)
|
||||
|
@ -1,7 +1,7 @@
|
||||
# -*- mode: python -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
SCOVERSION = "9.4.81"
|
||||
SCOVERSION = "9.4.82"
|
||||
|
||||
SCONAME = "ScoDoc"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user