diff --git a/app/comp/bonus_spo.py b/app/comp/bonus_spo.py
index d1c3ddcab7..1cbe4e59f5 100644
--- a/app/comp/bonus_spo.py
+++ b/app/comp/bonus_spo.py
@@ -21,6 +21,7 @@ from flask import g
from app.models.formsemestre import FormSemestre
from app.scodoc.sco_codes_parcours import UE_SPORT
+from app.scodoc.sco_codes_parcours import ParcoursDUT, ParcoursDUTMono
from app.scodoc.sco_utils import ModuleType
@@ -538,6 +539,44 @@ class BonusCachan1(BonusSportAdditif):
self.bonus_ues[ue.id] = 0.0
+class BonusCalais(BonusSportAdditif):
+ """Calcul bonus modules optionnels (sport, culture), règle IUT LCO.
+
+ Les étudiants de l'IUT LCO peuvent suivre des enseignements optionnels non
+ rattachés à une unité d'enseignement. Les points au-dessus de 10
+ sur 20 obtenus dans chacune des matières optionnelles sont cumulés
+ dans la limite de 10 points. 6% de ces points cumulés s'ajoutent :
+
+ - en DUT à la moyenne générale du semestre déjà obtenue par l'étudiant.
+
- en BUT et LP à la moyenne des UE dont l'acronyme fini par BS (ex : UE2.1BS, UE32BS)
+
+ """
+
+ name = "bonus_calais"
+ displayed_name = "IUT du Littoral"
+ bonus_max = 0.6
+ seuil_moy_gen = 10.0 # au dessus de 10
+ proportion_point = 0.06 # 6%
+
+ def compute_bonus(self, sem_modimpl_moys_inscrits, modimpl_coefs_etuds_no_nan):
+ parcours = self.formsemestre.formation.get_parcours()
+ # Variantes de DUT ?
+ if (
+ isinstance(parcours, ParcoursDUT)
+ or parcours.TYPE_PARCOURS == ParcoursDUTMono.TYPE_PARCOURS
+ ): # DUT
+ super().compute_bonus(sem_modimpl_moys_inscrits, modimpl_coefs_etuds_no_nan)
+ else:
+ self.classic_use_bonus_ues = True # pour les LP
+ super().compute_bonus(sem_modimpl_moys_inscrits, modimpl_coefs_etuds_no_nan)
+ ues = self.formsemestre.query_ues(with_sport=False).all()
+ ues_sans_bs = [
+ ue for ue in ues if ue.acronyme[-2:].upper() != "BS"
+ ] # les 2 derniers cars forcés en majus
+ for ue in ues_sans_bs:
+ self.bonus_ues[ue.id] = 0.0
+
+
class BonusColmar(BonusSportAdditif):
"""Calcul bonus modules optionnels (sport, culture), règle IUT Colmar.
diff --git a/sco_version.py b/sco_version.py
index 337ea606c1..55ce771df6 100644
--- a/sco_version.py
+++ b/sco_version.py
@@ -1,7 +1,7 @@
# -*- mode: python -*-
# -*- coding: utf-8 -*-
-SCOVERSION = "9.1.70"
+SCOVERSION = "9.1.71"
SCONAME = "ScoDoc"