Merge branch 'master' of https://scodoc.org/git/viennet/ScoDoc into dev93

This commit is contained in:
Emmanuel Viennet 2022-06-21 05:26:30 +02:00
commit cd2de51bcc
2 changed files with 59 additions and 2 deletions

View File

@ -1023,6 +1023,54 @@ class BonusNantes(BonusSportAdditif):
bonus_max = 0.5 # plafonnement à 0.5 points bonus_max = 0.5 # plafonnement à 0.5 points
class BonusOrleans(BonusSportAdditif):
"""Calcul bonus modules optionnels (sport, culture), règle IUT d'Orléans
<p><b>Cadre général :</b>
En reconnaissance de l'engagement des étudiants dans la vie associative,
sociale ou professionnelle, lIUT dOrléans accorde, sous conditions,
une bonification aux étudiants inscrits qui en font la demande en début
dannée universitaire.
</p>
<p>Cet engagement doit être régulier et correspondre à une activité réelle
et sérieuse qui bénéficie à toute la communauté étudiante de lIUT,
de lUniversité ou à lensemble de la collectivité.</p>
<p><b>Bonification :</b>
Pour les DUT et LP, cette bonification interviendra sur la moyenne générale
des semestres pairs :
<ul><li> du 2ème semestre pour les étudiants de 1ère année de DUT</li>
<li> du 4ème semestre pour les étudiants de 2nde année de DUT</li>
<li> du 6ème semestre pour les étudiants en LP</li>
</ul>
Pour le BUT, cette bonification interviendra sur la moyenne de chacune
des UE des semestre pairs :
<ul><li> du 2ème semestre pour les étudiants de 1ère année de BUT</li>
<li> du 4ème semestre pour les étudiants de 2ème année de BUT</li>
<li> du 6ème semestre pour les étudiants de 3ème année de BUT</li>
</ul>
<em>La bonification ne peut dépasser +0,5 points par année universitaire.</em>
</p>
<p><b> Avant février 2020 :</b>
Un bonus de 2,5% de la note de sport est accordé à la moyenne générale.
</p>
"""
name = "bonus_iutorleans"
displayed_name = "IUT d'Orléans"
bonus_max = 0.5
seuil_moy_gen = 0.0 # seuls les points au dessus du seuil sont comptés
proportion_point = 1
classic_use_bonus_ues = False
def compute_bonus(self, sem_modimpl_moys_inscrits, modimpl_coefs_etuds_no_nan):
if self.formsemestre.date_debut > datetime.date(2020, 2, 1):
self.proportion_point = 1.0
else:
self.proportion_point = 2.5 / 100.0
return super().compute_bonus(
sem_modimpl_moys_inscrits, modimpl_coefs_etuds_no_nan
)
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.

View File

@ -270,6 +270,15 @@ def get_group_members(group_id, etat=None):
return r return r
def check_group_name(group_name, partition, raiser=False):
"""If groupe name exists in partition : if raiser -> Raise ScoValueError else-> return true"""
exists = group_name in [g["group_name"] for g in get_partition_groups(partition)]
if exists:
if raiser:
raise ScoValueError("Le nom de groupe existe déjà dans la partition")
else :
return True
return False;
# obsolete: sco_groups_view.DisplayedGroupsInfos # obsolete: sco_groups_view.DisplayedGroupsInfos
# def get_groups_members(group_ids, etat=None): # def get_groups_members(group_ids, etat=None):
@ -830,7 +839,7 @@ def create_group(partition_id, group_name="", default=False) -> int:
if not group_name and not default: if not group_name and not default:
raise ValueError("invalid group name: ()") raise ValueError("invalid group name: ()")
# checkGroupName(group_name) # checkGroupName(group_name)
if group_name in [g["group_name"] for g in get_partition_groups(partition)]: if check_group_name(group_name, partition):
raise ValueError( raise ValueError(
"group_name %s already exists in partition" % group_name "group_name %s already exists in partition" % group_name
) # XXX FIX: incorrect error handling (in AJAX) ) # XXX FIX: incorrect error handling (in AJAX)
@ -1310,7 +1319,7 @@ def group_set_name(group_id, group_name, redirect=True):
redirect = int(redirect) redirect = int(redirect)
cnx = ndb.GetDBConnexion() cnx = ndb.GetDBConnexion()
groupEditor.edit(cnx, {"group_id": group_id, "group_name": group_name}) groupEditor.edit(cnx, {"group_id": group_id, "group_name": group_name})
check_group_name(group_name, get_partition(group["partition_id"]), True)
# redirect to partition edit page: # redirect to partition edit page:
if redirect: if redirect:
return flask.redirect( return flask.redirect(