forked from ScoDoc/ScoDoc
Update opolka/ScoDoc from ScoDoc/ScoDoc #2
@ -153,8 +153,8 @@ def evaluation_set_notes(evaluation_id: int):
|
|||||||
The request content type should be "application/json",
|
The request content type should be "application/json",
|
||||||
and contains:
|
and contains:
|
||||||
{
|
{
|
||||||
'notes' : [ (etudid, value), ... ],
|
'notes' : [ [etudid, value], ... ],
|
||||||
'comment' : opetional string
|
'comment' : optional string
|
||||||
}
|
}
|
||||||
Result:
|
Result:
|
||||||
- nb_changed: nombre de notes changées
|
- nb_changed: nombre de notes changées
|
||||||
|
@ -18,7 +18,7 @@ import pandas as pd
|
|||||||
|
|
||||||
from flask import g
|
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.codes_cursus import CursusDUT, CursusDUTMono
|
||||||
from app.scodoc.sco_utils import ModuleType
|
from app.scodoc.sco_utils import ModuleType
|
||||||
|
|
||||||
@ -740,6 +740,7 @@ class BonusGrenobleIUT1(BonusSportMultiplicatif):
|
|||||||
|
|
||||||
name = "bonus_iut1grenoble_2017"
|
name = "bonus_iut1grenoble_2017"
|
||||||
displayed_name = "IUT de Grenoble 1"
|
displayed_name = "IUT de Grenoble 1"
|
||||||
|
|
||||||
# C'est un bonus "multiplicatif": on l'exprime en additif,
|
# C'est un bonus "multiplicatif": on l'exprime en additif,
|
||||||
# sur chaque moyenne d'UE m_0
|
# sur chaque moyenne d'UE m_0
|
||||||
# Augmenter de 5% correspond à multiplier par a=1.05
|
# Augmenter de 5% correspond à multiplier par a=1.05
|
||||||
@ -782,6 +783,7 @@ class BonusIUTRennes1(BonusSportAdditif):
|
|||||||
seuil_moy_gen = 10.0
|
seuil_moy_gen = 10.0
|
||||||
proportion_point = 1 / 20.0
|
proportion_point = 1 / 20.0
|
||||||
classic_use_bonus_ues = False
|
classic_use_bonus_ues = False
|
||||||
|
|
||||||
# S'applique aussi en classic, sur la moy. gen.
|
# S'applique aussi en classic, sur la moy. gen.
|
||||||
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"""
|
||||||
@ -1336,6 +1338,7 @@ class BonusStNazaire(BonusSport):
|
|||||||
classic_use_bonus_ues = True # s'applique aux UEs en DUT et LP
|
classic_use_bonus_ues = True # s'applique aux UEs en DUT et LP
|
||||||
amplitude = 0.01 / 4 # 4pt => 1%
|
amplitude = 0.01 / 4 # 4pt => 1%
|
||||||
factor_max = 0.1 # 10% max
|
factor_max = 0.1 # 10% max
|
||||||
|
|
||||||
# Modifié 2022-11-29: calculer chaque bonus
|
# Modifié 2022-11-29: calculer chaque bonus
|
||||||
# (de 1 à 3 modules) séparément.
|
# (de 1 à 3 modules) séparément.
|
||||||
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):
|
||||||
@ -1533,6 +1536,62 @@ class BonusIUTV(BonusSportAdditif):
|
|||||||
# c'est le bonus par défaut: aucune méthode à surcharger
|
# 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):
|
def get_bonus_class_dict(start=BonusSport, d=None):
|
||||||
"""Dictionnaire des classes de bonus
|
"""Dictionnaire des classes de bonus
|
||||||
(liste les sous-classes de BonusSport ayant un nom)
|
(liste les sous-classes de BonusSport ayant un nom)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# -*- mode: python -*-
|
# -*- mode: python -*-
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
SCOVERSION = "9.4.81"
|
SCOVERSION = "9.4.82"
|
||||||
|
|
||||||
SCONAME = "ScoDoc"
|
SCONAME = "ScoDoc"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user