forked from ScoDoc/ScoDoc
Merge branch 'master' of https://scodoc.org/git/viennet/ScoDoc into dev93
This commit is contained in:
commit
5f9a916135
@ -266,6 +266,8 @@ class BonusSportMultiplicatif(BonusSport):
|
|||||||
amplitude = 0.005 # multiplie les points au dessus du seuil
|
amplitude = 0.005 # multiplie les points au dessus du seuil
|
||||||
# En classique, les bonus multiplicatifs agissent par défaut sur les UE:
|
# En classique, les bonus multiplicatifs agissent par défaut sur les UE:
|
||||||
classic_use_bonus_ues = True
|
classic_use_bonus_ues = True
|
||||||
|
# Facteur multiplicatif max: (bonus = moy_ue*factor)
|
||||||
|
factor_max = 1000.0 # infini
|
||||||
|
|
||||||
# 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
|
||||||
@ -285,6 +287,8 @@ class BonusSportMultiplicatif(BonusSport):
|
|||||||
notes = np.nan_to_num(notes, copy=False)
|
notes = np.nan_to_num(notes, copy=False)
|
||||||
factor = (notes - self.seuil_moy_gen) * self.amplitude # 5% si note=20
|
factor = (notes - self.seuil_moy_gen) * self.amplitude # 5% si note=20
|
||||||
factor[factor <= 0] = 0.0 # note < seuil_moy_gen, pas de bonus
|
factor[factor <= 0] = 0.0 # note < seuil_moy_gen, pas de bonus
|
||||||
|
# note < seuil_moy_gen, pas de bonus: pas de facteur négatif, ni
|
||||||
|
factor.clip(0.0, self.factor_max, out=factor)
|
||||||
|
|
||||||
# Ne s'applique qu'aux moyennes d'UE
|
# Ne s'applique qu'aux moyennes d'UE
|
||||||
if len(factor.shape) == 1: # classic
|
if len(factor.shape) == 1: # classic
|
||||||
@ -705,10 +709,11 @@ class BonusGrenobleIUT1(BonusSportMultiplicatif):
|
|||||||
|
|
||||||
class BonusIUTRennes1(BonusSportAdditif):
|
class BonusIUTRennes1(BonusSportAdditif):
|
||||||
"""Calcul bonus optionnels (sport, langue vivante, engagement étudiant),
|
"""Calcul bonus optionnels (sport, langue vivante, engagement étudiant),
|
||||||
règle IUT de l'Université de Rennes 1 (Lannion, St Malo).
|
règle IUT de l'Université de Rennes 1 (Lannion, Rennes, St Brieuc, St Malo).
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Les étudiants peuvent suivre un ou plusieurs activités optionnelles notées.
|
<li>Les étudiants peuvent suivre un ou plusieurs activités optionnelles notées
|
||||||
|
dans les semestres pairs.<br>
|
||||||
La meilleure des notes obtenue est prise en compte, si elle est supérieure à 10/20.
|
La meilleure des notes obtenue est prise en compte, si elle est supérieure à 10/20.
|
||||||
</li>
|
</li>
|
||||||
<li>Le vingtième des points au dessus de 10 est ajouté à la moyenne de chaque UE
|
<li>Le vingtième des points au dessus de 10 est ajouté à la moyenne de chaque UE
|
||||||
@ -749,6 +754,19 @@ class BonusIUTRennes1(BonusSportAdditif):
|
|||||||
self.bonus_additif(bonus_moy_arr)
|
self.bonus_additif(bonus_moy_arr)
|
||||||
|
|
||||||
|
|
||||||
|
# juste pour compatibilité (nom bonus en base):
|
||||||
|
class BonusStBrieuc(BonusIUTRennes1):
|
||||||
|
name = "bonus_iut_stbrieuc"
|
||||||
|
displayed_name = "IUTs de Rennes 1/St-Brieuc"
|
||||||
|
__doc__ = BonusIUTRennes1.__doc__
|
||||||
|
|
||||||
|
|
||||||
|
class BonusStMalo(BonusIUTRennes1):
|
||||||
|
name = "bonus_iut_stmalo"
|
||||||
|
displayed_name = "IUTs de Rennes 1/St-Malo"
|
||||||
|
__doc__ = BonusIUTRennes1.__doc__
|
||||||
|
|
||||||
|
|
||||||
class BonusLaRochelle(BonusSportAdditif):
|
class BonusLaRochelle(BonusSportAdditif):
|
||||||
"""Calcul bonus modules optionnels (sport, culture), règle IUT de La Rochelle.
|
"""Calcul bonus modules optionnels (sport, culture), règle IUT de La Rochelle.
|
||||||
|
|
||||||
@ -967,7 +985,7 @@ class BonusNantes(BonusSportAdditif):
|
|||||||
class BonusPoitiers(BonusSportAdditif):
|
class BonusPoitiers(BonusSportAdditif):
|
||||||
"""Calcul bonus optionnels (sport, culture), règle IUT de Poitiers.
|
"""Calcul bonus optionnels (sport, culture), règle IUT de Poitiers.
|
||||||
|
|
||||||
Les deux notes d'option supérieure à 10, bonifies les moyennes de chaque UE.
|
Les deux notes d'option supérieure à 10, bonifient les moyennes de chaque UE.
|
||||||
|
|
||||||
bonus = (option1 - 10)*5% + (option2 - 10)*5%
|
bonus = (option1 - 10)*5% + (option2 - 10)*5%
|
||||||
"""
|
"""
|
||||||
@ -992,27 +1010,6 @@ class BonusRoanne(BonusSportAdditif):
|
|||||||
proportion_point = 1
|
proportion_point = 1
|
||||||
|
|
||||||
|
|
||||||
class BonusStBrieuc(BonusSportAdditif):
|
|
||||||
"""IUT de Saint Brieuc
|
|
||||||
|
|
||||||
Ne s'applique qu'aux semestres pairs (S2, S4, S6), et bonifie les moyennes d'UE:
|
|
||||||
<ul>
|
|
||||||
<li>Bonus = (S - 10)/20</li>
|
|
||||||
</ul>
|
|
||||||
"""
|
|
||||||
|
|
||||||
# Utilisé aussi par St Malo, voir plus bas
|
|
||||||
name = "bonus_iut_stbrieuc"
|
|
||||||
displayed_name = "IUT de Saint-Brieuc"
|
|
||||||
proportion_point = 1 / 20.0
|
|
||||||
classic_use_bonus_ues = False
|
|
||||||
|
|
||||||
def compute_bonus(self, sem_modimpl_moys_inscrits, modimpl_coefs_etuds_no_nan):
|
|
||||||
"""calcul du bonus"""
|
|
||||||
if self.formsemestre.semestre_id % 2 == 0:
|
|
||||||
super().compute_bonus(sem_modimpl_moys_inscrits, modimpl_coefs_etuds_no_nan)
|
|
||||||
|
|
||||||
|
|
||||||
class BonusStEtienne(BonusSportAdditif):
|
class BonusStEtienne(BonusSportAdditif):
|
||||||
"""IUT de Saint-Etienne.
|
"""IUT de Saint-Etienne.
|
||||||
|
|
||||||
@ -1043,17 +1040,31 @@ class BonusStDenis(BonusSportAdditif):
|
|||||||
bonus_max = 0.5
|
bonus_max = 0.5
|
||||||
|
|
||||||
|
|
||||||
class BonusStMalo(BonusStBrieuc):
|
class BonusStNazaire(BonusSportMultiplicatif):
|
||||||
# identique à St Brieux, sauf la doc
|
"""IUT de Saint-Nazaire
|
||||||
"""IUT de Saint Malo
|
|
||||||
|
|
||||||
Ne s'applique qu'aux semestres pairs (S2, S4, S6), et bonifie les moyennes d'UE:
|
Trois bonifications sont possibles : sport, culture et engagement citoyen
|
||||||
|
(qui seront déclarées comme des modules séparés de l'UE bonus).
|
||||||
<ul>
|
<ul>
|
||||||
<li>Bonus = (S - 10)/20</li>
|
<li>Chaque bonus est compris entre 0 et 20 points -> 4pt = 1%<br>
|
||||||
|
(note 4/20: 1%, 8/20: 2%, 12/20: 3%, 16/20: 4%, 20/20: 5%)
|
||||||
|
</li>
|
||||||
|
<li>Le total des 3 bonus ne peut excéder 10%</li>
|
||||||
|
<li>La somme des bonus s'applique à la moyenne de chaque UE</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
<p>Exemple: une moyenne d'UE de 10/20 avec un total des bonus de 6% donne
|
||||||
|
une moyenne de 10,6.</p>
|
||||||
|
<p>Les bonifications s'appliquent aussi au classement général du semestre
|
||||||
|
et de l'année.
|
||||||
|
</p>
|
||||||
"""
|
"""
|
||||||
name = "bonus_iut_stmalo"
|
|
||||||
displayed_name = "IUT de Saint-Malo"
|
name = "bonus_iutSN"
|
||||||
|
displayed_name = "IUT de Saint-Nazaire"
|
||||||
|
classic_use_bonus_ues = True # s'applique aux UEs en DUT et LP
|
||||||
|
seuil_moy_gen = 0.0 # tous les points comptent
|
||||||
|
amplitude = 0.01 / 4 # 4pt => 1%
|
||||||
|
factor_max = 0.1 # 10% max
|
||||||
|
|
||||||
|
|
||||||
class BonusTarbes(BonusSportAdditif):
|
class BonusTarbes(BonusSportAdditif):
|
||||||
|
@ -606,12 +606,10 @@ def formsemestre_evaluations_delai_correction(formsemestre_id, format="html"):
|
|||||||
|
|
||||||
|
|
||||||
# -------------- VIEWS
|
# -------------- VIEWS
|
||||||
def evaluation_describe(evaluation_id="", edit_in_place=True):
|
def evaluation_describe(evaluation_id="", edit_in_place=True, link_saisie=True):
|
||||||
"""HTML description of evaluation, for page headers
|
"""HTML description of evaluation, for page headers
|
||||||
edit_in_place: allow in-place editing when permitted (not implemented)
|
edit_in_place: allow in-place editing when permitted (not implemented)
|
||||||
"""
|
"""
|
||||||
from app.scodoc import sco_saisie_notes
|
|
||||||
|
|
||||||
E = sco_evaluation_db.do_evaluation_list({"evaluation_id": evaluation_id})[0]
|
E = sco_evaluation_db.do_evaluation_list({"evaluation_id": evaluation_id})[0]
|
||||||
moduleimpl_id = E["moduleimpl_id"]
|
moduleimpl_id = E["moduleimpl_id"]
|
||||||
M = sco_moduleimpl.moduleimpl_list(moduleimpl_id=moduleimpl_id)[0]
|
M = sco_moduleimpl.moduleimpl_list(moduleimpl_id=moduleimpl_id)[0]
|
||||||
@ -646,7 +644,7 @@ def evaluation_describe(evaluation_id="", edit_in_place=True):
|
|||||||
if Mod["module_type"] == ModuleType.MALUS:
|
if Mod["module_type"] == ModuleType.MALUS:
|
||||||
etit += ' <span class="eval_malus">(points de malus)</span>'
|
etit += ' <span class="eval_malus">(points de malus)</span>'
|
||||||
H = [
|
H = [
|
||||||
'<span class="eval_title">Evaluation%s</span><p><b>Module : %s</b></p>'
|
'<span class="eval_title">Évaluation%s</span><p><b>Module : %s</b></p>'
|
||||||
% (etit, mod_descr)
|
% (etit, mod_descr)
|
||||||
]
|
]
|
||||||
if Mod["module_type"] == ModuleType.MALUS:
|
if Mod["module_type"] == ModuleType.MALUS:
|
||||||
@ -689,12 +687,16 @@ def evaluation_describe(evaluation_id="", edit_in_place=True):
|
|||||||
<a class="stdlink" href="{url_for(
|
<a class="stdlink" href="{url_for(
|
||||||
"notes.evaluation_edit", scodoc_dept=g.scodoc_dept, evaluation_id=evaluation_id)
|
"notes.evaluation_edit", scodoc_dept=g.scodoc_dept, evaluation_id=evaluation_id)
|
||||||
}">modifier l'évaluation</a>
|
}">modifier l'évaluation</a>
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
if link_saisie:
|
||||||
|
H.append(
|
||||||
|
f"""
|
||||||
<a class="stdlink" href="{url_for(
|
<a class="stdlink" href="{url_for(
|
||||||
"notes.saisie_notes", scodoc_dept=g.scodoc_dept, evaluation_id=evaluation_id)
|
"notes.saisie_notes", scodoc_dept=g.scodoc_dept, evaluation_id=evaluation_id)
|
||||||
}">saisie des notes</a>
|
}">saisie des notes</a>
|
||||||
"""
|
"""
|
||||||
)
|
)
|
||||||
H.append("</p>")
|
H.append("</p>")
|
||||||
|
|
||||||
return '<div class="eval_description">' + "\n".join(H) + "</div>"
|
return '<div class="eval_description">' + "\n".join(H) + "</div>"
|
||||||
|
@ -277,7 +277,11 @@ def moduleimpl_status(moduleimpl_id=None, partition_id=None):
|
|||||||
if modimpl.module.is_apc():
|
if modimpl.module.is_apc():
|
||||||
H.append(_ue_coefs_html(modimpl.module.ue_coefs_list()))
|
H.append(_ue_coefs_html(modimpl.module.ue_coefs_list()))
|
||||||
else:
|
else:
|
||||||
H.append(f"Coef. dans le semestre: {modimpl.module.coefficient}")
|
H.append(
|
||||||
|
f"""Coef. dans le semestre: {
|
||||||
|
"non défini" if modimpl.module.coefficient is None else modimpl.module.coefficient
|
||||||
|
}"""
|
||||||
|
)
|
||||||
H.append("""</td><td></td></tr>""")
|
H.append("""</td><td></td></tr>""")
|
||||||
# 3ieme ligne: Formation
|
# 3ieme ligne: Formation
|
||||||
H.append(
|
H.append(
|
||||||
|
@ -943,7 +943,9 @@ def saisie_notes(evaluation_id, group_ids=[]):
|
|||||||
cssstyles=sco_groups_view.CSSSTYLES,
|
cssstyles=sco_groups_view.CSSSTYLES,
|
||||||
init_qtip=True,
|
init_qtip=True,
|
||||||
),
|
),
|
||||||
sco_evaluations.evaluation_describe(evaluation_id=evaluation_id),
|
sco_evaluations.evaluation_describe(
|
||||||
|
evaluation_id=evaluation_id, link_saisie=False
|
||||||
|
),
|
||||||
'<div id="saisie_notes"><span class="eval_title">Saisie des notes</span>',
|
'<div id="saisie_notes"><span class="eval_title">Saisie des notes</span>',
|
||||||
]
|
]
|
||||||
H.append("""<div id="group-tabs"><table><tr><td>""")
|
H.append("""<div id="group-tabs"><table><tr><td>""")
|
||||||
|
Loading…
Reference in New Issue
Block a user