[Scodoc-devel] [SVN] Scolar : [1565] Ajout fonction calcul bonus IUT Bordeaux 1

eviennet at lipn.univ-paris13.fr eviennet at lipn.univ-paris13.fr
Mar 13 Sep 13:52:53 CEST 2016


Une pièce jointe HTML a été nettoyée...
URL: <https://www-rt.iutv.univ-paris13.fr/pipermail/scodoc-devel/attachments/20160913/704e624d/attachment.html>
-------------- section suivante --------------
Modified: branches/ScoDoc7/bonus_sport.py
===================================================================
--- branches/ScoDoc7/bonus_sport.py	2016-09-12 19:38:31 UTC (rev 1564)
+++ branches/ScoDoc7/bonus_sport.py	2016-09-13 11:52:53 UTC (rev 1565)
@@ -270,7 +270,41 @@
     bonus = infos['moy'] * factor
     return bonus
 
+def bonus_iutBordeaux1(notes_sport, coefs, infos=None):
+    """Calcul bonus modules optionels (sport, culture), règle IUT Bordeaux 1, sur moyenne générale et UE
 
+    Les étudiants de l'IUT peuvent suivre des enseignements optionnels
+    de l'Université Bordeaux 1 (sport, théâtre) non rattachés à une unité d'enseignement.
+    En cas de double activité, c'est la meilleure des 2 notes qui compte.
+    Chaque point au-dessus de 10 sur 20 obtenus dans cet enseignement correspond à un %
+    qui augmente la moyenne de chaque UE et la moyenne générale.
+    Formule : le % = points>moyenne / 2
+    Par exemple : sport 13/20 : chaque UE sera multipliée par 1+0,015, ainsi que la moyenne générale.
+
+    Calcul ici du bonus sur moyenne générale et moyennes d'UE non capitalisées.
+    """
+    #open('/tmp/log','a').write( '\n---------------\n' + pprint.pformat(infos) + '\n' )
+    # les coefs sont ignorés
+    # on récupère la note maximum et les points au-dessus de la moyenne
+    sport = max( notes_sport )
+    points = max( 0, sport - 10 )
+    # on calcule le bonus
+    factor = (points/2.)/100.
+    bonus = infos['moy'] * factor
+    # Modifie les moyennes de toutes les UE:
+    for ue_id in infos['moy_ues']:
+        ue_status = infos['moy_ues'][ue_id]
+        if ue_status['sum_coefs'] > 0:
+            # modifie moyenne UE ds semestre courant
+            ue_status['cur_moy_ue'] = ue_status['cur_moy_ue'] * (1. + factor)
+            if not ue_status['is_capitalized']:
+                # si non capitalisee, modifie moyenne prise en compte
+                ue_status['moy'] = ue_status['cur_moy_ue']
+    
+        #open('/tmp/log','a').write( pprint.pformat(ue_status) + '\n\n' )    
+    return bonus
+
+
 def bonus_demo(notes_sport, coefs, infos=None):
     """Fausse fonction "bonus" pour afficher les informations disponibles
     et aider les développeurs.

Modified: branches/ScoDoc7/sco_tag_module.py
===================================================================
--- branches/ScoDoc7/sco_tag_module.py	2016-09-12 19:38:31 UTC (rev 1564)
+++ branches/ScoDoc7/sco_tag_module.py	2016-09-13 11:52:53 UTC (rev 1565)
@@ -197,7 +197,7 @@
 def get_etud_tagged_modules(context, etudid, tagname):
     """Liste d'infos sur les modules de ce semestre avec ce tag.
     Cherche dans tous les semestres dans lesquel l'étudiant est ou a été inscrit.
-    Construit la liste des moduels avec le tag donné par tagname    
+    Construit la liste des modules avec le tag donné par tagname    
     """
     etud = context.getEtudInfo(etudid=etudid, filled=True)[0]
     R = []


Plus d'informations sur la liste de diffusion Scodoc-devel