forked from ScoDoc/ScoDoc
WIP bonus sport
This commit is contained in:
parent
782e291725
commit
53630f08de
@ -28,6 +28,44 @@
|
|||||||
from operator import mul
|
from operator import mul
|
||||||
import pprint
|
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):
|
def bonus_iutv(notes_sport, coefs, infos=None):
|
||||||
"""Calcul bonus modules optionels (sport, culture), règle IUT Villetaneuse
|
"""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 à
|
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.
|
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])
|
bonus = sum([(x - 10) / 20.0 for x in notes_sport if x > 10])
|
||||||
return bonus
|
return bonus
|
||||||
|
|
||||||
|
@ -382,8 +382,6 @@ def make_formsemestre_recapcomplet(
|
|||||||
h += ["code_nip", "etudid"]
|
h += ["code_nip", "etudid"]
|
||||||
F.append(h)
|
F.append(h)
|
||||||
|
|
||||||
ue_index = [] # indices des moy UE dans l (pour appliquer style css)
|
|
||||||
|
|
||||||
def fmtnum(val): # conversion en nombre pour cellules excel
|
def fmtnum(val): # conversion en nombre pour cellules excel
|
||||||
if keep_numeric:
|
if keep_numeric:
|
||||||
try:
|
try:
|
||||||
@ -434,9 +432,15 @@ def make_formsemestre_recapcomplet(
|
|||||||
else:
|
else:
|
||||||
l = [rank, nt.get_nom_short(etudid)] # rang, nom,
|
l = [rank, nt.get_nom_short(etudid)] # rang, nom,
|
||||||
|
|
||||||
|
e["admission"] = {}
|
||||||
if not hidebac:
|
if not hidebac:
|
||||||
bac = sco_bac.Baccalaureat(e["bac"], e["specialite"])
|
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())
|
l.append(bac.abbrev())
|
||||||
|
else:
|
||||||
|
l.append("")
|
||||||
|
|
||||||
if format[:3] == "xls" or format == "csv": # tous les groupes
|
if format[:3] == "xls" or format == "csv": # tous les groupes
|
||||||
for partition in partitions:
|
for partition in partitions:
|
||||||
@ -462,9 +466,11 @@ def make_formsemestre_recapcomplet(
|
|||||||
l.append(rang_gr[partition["partition_id"]])
|
l.append(rang_gr[partition["partition_id"]])
|
||||||
|
|
||||||
# Nombre d'UE au dessus de 10
|
# Nombre d'UE au dessus de 10
|
||||||
nb_ue_ok = sum(
|
# t[i] est une chaine :-)
|
||||||
[t[i] > 10 for i, ue in enumerate(ues, start=1) if ue["type"] != UE_SPORT]
|
# 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):
|
for i, ue in enumerate(ues, start=1):
|
||||||
if ue["type"] != UE_SPORT:
|
if ue["type"] != UE_SPORT:
|
||||||
l.append(
|
l.append(
|
||||||
@ -493,7 +499,7 @@ def make_formsemestre_recapcomplet(
|
|||||||
j += 1
|
j += 1
|
||||||
if not hidebac:
|
if not hidebac:
|
||||||
for k in admission_extra_cols:
|
for k in admission_extra_cols:
|
||||||
l.append(e[k])
|
l.append(getattr(e["admission"], k, ""))
|
||||||
l.append(
|
l.append(
|
||||||
nt.identdict[etudid]["code_nip"] or ""
|
nt.identdict[etudid]["code_nip"] or ""
|
||||||
) # avant-derniere colonne = code_nip
|
) # avant-derniere colonne = code_nip
|
||||||
@ -543,7 +549,7 @@ def make_formsemestre_recapcomplet(
|
|||||||
# n'affiche pas la moyenne d'UE dans ce cas
|
# n'affiche pas la moyenne d'UE dans ce cas
|
||||||
if not hidemodules:
|
if not hidemodules:
|
||||||
l.append("")
|
l.append("")
|
||||||
ue_index.append(len(l) - 1)
|
# ue_index.append(len(l) - 1)
|
||||||
if not hidemodules and not ue["is_external"]:
|
if not hidemodules and not ue["is_external"]:
|
||||||
for modimpl in modimpls:
|
for modimpl in modimpls:
|
||||||
if modimpl["module"]["ue_id"] == ue["ue_id"]:
|
if modimpl["module"]["ue_id"] == ue["ue_id"]:
|
||||||
|
Loading…
Reference in New Issue
Block a user