forked from ScoDoc/ScoDoc
WIP bonus sport
This commit is contained in:
parent
782e291725
commit
53630f08de
@ -28,6 +28,44 @@
|
||||
from operator import mul
|
||||
import pprint
|
||||
|
||||
"""
|
||||
La fonction bonus_sport reçoit:
|
||||
|
||||
- notes_sport: la liste des notes des modules de sport et culture (une note par module);
|
||||
- coefs: un coef (float) pondérant chaque note (la plupart des bonus les ignorent);
|
||||
- infos: dictionnaire avec des données pouvant être utilisées pour les calculs.
|
||||
Ces données dépendent du type de formation.
|
||||
infos = {
|
||||
"moy" : la moyenne générale (float). 0. en BUT.
|
||||
"sem" : {
|
||||
"date_debut_iso" : "2010-08-01", # date de début de semestre
|
||||
}
|
||||
"moy_ues": {
|
||||
ue_id : { # ue_status
|
||||
"is_capitalized" : True|False,
|
||||
"moy" : float, # moyenne d'UE prise en compte (peut-être capitalisée)
|
||||
"sum_coefs": float, # > 0 si UE avec la moyenne calculée
|
||||
"cur_moy_ue": float, # moyenne de l'UE (sans capitalisation))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Les notes passées sont:
|
||||
- pour les formations classiques, la moyenne dans le module, calculée comme d'habitude
|
||||
(moyenne pondérée des notes d'évaluations);
|
||||
- pour le BUT: pareil, *en ignorant* les éventuels poids des évaluations. Le coefficient
|
||||
de l'évaluation est pris en compte, mais pas les poids vers les UE.
|
||||
|
||||
Pour modifier les moyennes d'UE:
|
||||
- modifier infos["moy_ues"][ue_id][["cur_moy_ue"]
|
||||
et, seulement si l'UE n'est pas capitalisée, infos["moy_ues"][ue_id][["moy"]/
|
||||
|
||||
La valeur retournée est:
|
||||
- formations classiques: ajoutée à la moyenne générale
|
||||
- BUT: ajoutée à chaque UE si le coef XXX
|
||||
|
||||
"""
|
||||
|
||||
|
||||
def bonus_iutv(notes_sport, coefs, infos=None):
|
||||
"""Calcul bonus modules optionels (sport, culture), règle IUT Villetaneuse
|
||||
@ -39,6 +77,7 @@ def bonus_iutv(notes_sport, coefs, infos=None):
|
||||
optionnelles sont cumulés et 5% de ces points cumulés s'ajoutent à
|
||||
la moyenne générale du semestre déjà obtenue par l'étudiant.
|
||||
"""
|
||||
# breakpoint()
|
||||
bonus = sum([(x - 10) / 20.0 for x in notes_sport if x > 10])
|
||||
return bonus
|
||||
|
||||
|
@ -382,8 +382,6 @@ def make_formsemestre_recapcomplet(
|
||||
h += ["code_nip", "etudid"]
|
||||
F.append(h)
|
||||
|
||||
ue_index = [] # indices des moy UE dans l (pour appliquer style css)
|
||||
|
||||
def fmtnum(val): # conversion en nombre pour cellules excel
|
||||
if keep_numeric:
|
||||
try:
|
||||
@ -434,9 +432,15 @@ def make_formsemestre_recapcomplet(
|
||||
else:
|
||||
l = [rank, nt.get_nom_short(etudid)] # rang, nom,
|
||||
|
||||
e["admission"] = {}
|
||||
if not hidebac:
|
||||
bac = sco_bac.Baccalaureat(e["bac"], e["specialite"])
|
||||
l.append(bac.abbrev())
|
||||
if etud_etat == scu.INSCRIT:
|
||||
e["admission"] = nt.etuds_dict[etudid].admission.first()
|
||||
if e["admission"]:
|
||||
bac = nt.etuds_dict[etudid].admission[0].get_bac()
|
||||
l.append(bac.abbrev())
|
||||
else:
|
||||
l.append("")
|
||||
|
||||
if format[:3] == "xls" or format == "csv": # tous les groupes
|
||||
for partition in partitions:
|
||||
@ -462,9 +466,11 @@ def make_formsemestre_recapcomplet(
|
||||
l.append(rang_gr[partition["partition_id"]])
|
||||
|
||||
# Nombre d'UE au dessus de 10
|
||||
nb_ue_ok = sum(
|
||||
[t[i] > 10 for i, ue in enumerate(ues, start=1) if ue["type"] != UE_SPORT]
|
||||
)
|
||||
# t[i] est une chaine :-)
|
||||
# nb_ue_ok = sum(
|
||||
# [t[i] > 10 for i, ue in enumerate(ues, start=1) if ue["type"] != UE_SPORT]
|
||||
# )
|
||||
ue_index = [] # indices des moy UE dans l (pour appliquer style css)
|
||||
for i, ue in enumerate(ues, start=1):
|
||||
if ue["type"] != UE_SPORT:
|
||||
l.append(
|
||||
@ -493,7 +499,7 @@ def make_formsemestre_recapcomplet(
|
||||
j += 1
|
||||
if not hidebac:
|
||||
for k in admission_extra_cols:
|
||||
l.append(e[k])
|
||||
l.append(getattr(e["admission"], k, ""))
|
||||
l.append(
|
||||
nt.identdict[etudid]["code_nip"] or ""
|
||||
) # avant-derniere colonne = code_nip
|
||||
@ -543,7 +549,7 @@ def make_formsemestre_recapcomplet(
|
||||
# n'affiche pas la moyenne d'UE dans ce cas
|
||||
if not hidemodules:
|
||||
l.append("")
|
||||
ue_index.append(len(l) - 1)
|
||||
# ue_index.append(len(l) - 1)
|
||||
if not hidemodules and not ue["is_external"]:
|
||||
for modimpl in modimpls:
|
||||
if modimpl["module"]["ue_id"] == ue["ue_id"]:
|
||||
|
Loading…
Reference in New Issue
Block a user