[scodoc-devel] [SVN] Scolar : [1798] Parcours Master en 4 semestre de l'Institut Galilee

eviennet at lipn.univ-paris13.fr eviennet at lipn.univ-paris13.fr
Jeu 20 Sep 16:33:05 CEST 2018


Une pièce jointe HTML a été nettoyée...
URL: https://listes.univ-paris13.fr/pipermail/scodoc-devel/attachments/20180920/8f4d54aa/attachment.htm 
-------------- section suivante --------------
Modified: branches/ScoDoc7/sco_codes_parcours.py
===================================================================
--- branches/ScoDoc7/sco_codes_parcours.py	2018-09-19 21:24:59 UTC (rev 1797)
+++ branches/ScoDoc7/sco_codes_parcours.py	2018-09-20 14:33:05 UTC (rev 1798)
@@ -139,6 +139,8 @@
         return True
 
 # Types de parcours
+DEFAULT_TYPE_PARCOURS = 100 # pour le menu de creation nouvelle formation
+    
 class TypeParcours:
     TYPE_PARCOURS = None # id, utilisé par notes_formation.type_parcours
     NAME = None # required
@@ -345,7 +347,6 @@
 
 register_parcours(ParcoursM2noncomp())
 
-
 class ParcoursMono(TypeParcours):
     """Formation générique en une session"""
     TYPE_PARCOURS = 300
@@ -384,7 +385,7 @@
     ECTS_PROF_DIPL = 0 # crédits professionnels requis pour obtenir le diplôme
 
 class ParcoursBachelorISCID6(ParcoursISCID):
-    """Bachelor ISCID en 3 ans (6 sem.)"""
+    """ISCID: Bachelor en 3 ans (6 sem.)"""
     NAME = "ParcoursBachelorISCID6"
     TYPE_PARCOURS = 1001
     NAME = ""
@@ -394,7 +395,7 @@
 register_parcours(ParcoursBachelorISCID6())
 
 class ParcoursMasterISCID4(ParcoursISCID):
-    "Master ISCID en 2 ans (4 sem.)"
+    "ISCID: Master en 2 ans (4 sem.)"
     TYPE_PARCOURS = 1002
     NAME = "ParcoursMasterISCID4"
     NB_SEM = 4
@@ -415,7 +416,7 @@
     BARRE_UE_DEFAULT = NOTES_BARRE_VALID_UE_TH # il faut valider tt les UE pour valider l'année
     
 class ParcoursLicenceUCAC3(ParcoursUCAC):
-    """Licence UCAC en 3 sessions d'un an"""
+    """UCAC: Licence en 3 sessions d'un an"""
     TYPE_PARCOURS = 501
     NAME = "Licence UCAC en 3 sessions d'un an"
     NB_SEM = 3
@@ -423,7 +424,7 @@
 register_parcours(ParcoursLicenceUCAC3())
 
 class ParcoursMasterUCAC2(ParcoursUCAC):
-    """Master UCAC en 2 sessions d'un an"""
+    """UCAC: Master en 2 sessions d'un an"""
     TYPE_PARCOURS = 502
     NAME = "Master UCAC en 2 sessions d'un an"
     NB_SEM = 2
@@ -431,7 +432,7 @@
 register_parcours(ParcoursMasterUCAC2())
 
 class ParcoursMonoUCAC(ParcoursUCAC):
-    """Formation UCAC en 1 session de durée variable"""
+    """UCAC: Formation en 1 session de durée variable"""
     TYPE_PARCOURS = 503
     NAME = "Formation UCAC en 1 session de durée variable"
     NB_SEM = 1
@@ -458,18 +459,61 @@
 
 # register_parcours(ParcoursLicenceLMD())
 
-# class ParcoursMasterLMD(TypeParcours):
-#     """Master standard en 4 semestres dans le LMD"""
-#     TYPE_PARCOURS = 402
-#     NAME = "Master LMD"
-#     NB_SEM = 4
-#     COMPENSATION_UE = True
+class ParcoursMasterLMD(TypeParcours):
+    """Master générique en 4 semestres dans le LMD"""
+    TYPE_PARCOURS = 402
+    NAME = "Master LMD"
+    NB_SEM = 4
+    COMPENSATION_UE = True # variabale inutilisée
+    UNUSED_CODES = set( (ADC, ATT, ATB) )
 
-# register_parcours(ParcoursMasterLMD())
+register_parcours(ParcoursMasterLMD())
 
+class ParcoursMasterIG(ParcoursMasterLMD):
+    """Master de l'Institut Galilée (U. Paris 13) en 4 semestres (LMD)"""
+    TYPE_PARCOURS = 403
+    NAME = "Master IG P13"
+    BARRE_MOY = 10.
+    NOTES_BARRE_VALID_UE_TH = 10. # seuil pour valider UE
+    NOTES_BARRE_VALID_UE = NOTES_BARRE_VALID_UE_TH - NOTES_TOLERANCE   # barre sur UE
+    BARRE_UE_DEFAULT = 7. # Les UE normales avec moins de 7/20 sont éliminatoires
+    # Specifique à l'UE de stage
+    BARRE_MOY_UE_STAGE = 10.
+    ALLOWED_UE_TYPES = [UE_STANDARD, UE_SPORT, UE_STAGE_10]
+    def check_barre_ues(self, ues_status): # inspire de la fonction de ParcoursLP2014
+        """True si la ou les conditions sur les UE sont valides
+        moyenne d'UE > 7, ou > 10 si UE de stage
+        """
+        # Il y a-t-il une UE standard sous la barre ?
+        ue_sb = [ ue_status for ue_status in ues_status
+                  if ue_status['ue']['type'] == UE_STANDARD
+                  and ue_status['coef_ue'] > 0
+                  and type(ue_status['moy']) == FloatType
+                  and ue_status['moy'] < self.get_barre_ue(ue_status['ue']['type'])
+                  ]
+        if len(ue_sb):
+            return False, '<b>%d UE sous la barre (%s/20)</b>' % (len(ue_sb), self.BARRE_UE_DEFAULT)
+        # Les UE de type "stage" ayant des notes
+        mc_stages = [ (ue_status['moy'], ue_status['coef_ue'])
+                     for ue_status in ues_status
+                     if ue_status['ue']['type'] == UE_STAGE_10
+                     and type(ue_status['moy']) == FloatType
+                     ]
+        # Moyenne des moyennes:
+        sum_coef = sum( x[1] for x in mc_stages )
+        if sum_coef > 0.:
+            moy = sum( [x[0]*x[1] for x in mc_stages]) / sum_coef
+            ok = moy > (self.BARRE_MOY_UE_STAGE - NOTES_TOLERANCE)
+            if ok:
+                return True, 'moyenne des UE de stages au dessus de 10'
+            else:
+                return False, '<b>moyenne des UE de stages inférieure à 10</b>'
+        else:
+            return True, '' # pas de coef, condition ok
 
+register_parcours(ParcoursMasterIG())
 
-
+    
 # Ajouter ici vos parcours, le TYPE_PARCOURS devant être unique au monde
 # (avisez sur la liste de diffusion)
 
@@ -478,8 +522,10 @@
 
 
 # -------------------------
-FORMATION_PARCOURS_DESCRS =  [ p.__doc__ for p in TYPES_PARCOURS.values() ]
-FORMATION_PARCOURS_TYPES =   [ p.TYPE_PARCOURS for p in TYPES_PARCOURS.values() ] 
+_tp = TYPES_PARCOURS.items()
+_tp.sort( key=lambda x: x[1].__doc__ ) # sort by intitulé
+FORMATION_PARCOURS_DESCRS =  [ p[1].__doc__ for p in _tp ]   # intitulés (eg pour menu)
+FORMATION_PARCOURS_TYPES =   [ p[0] for p in _tp ]        # codes numeriques (TYPE_PARCOURS)
 
 def get_parcours_from_code(code_parcours):
     return TYPES_PARCOURS[code_parcours]

Modified: branches/ScoDoc7/sco_edit_formation.py
===================================================================
--- branches/ScoDoc7/sco_edit_formation.py	2018-09-19 21:24:59 UTC (rev 1797)
+++ branches/ScoDoc7/sco_edit_formation.py	2018-09-20 14:33:05 UTC (rev 1798)
@@ -116,6 +116,7 @@
                             'allowed_values' : sco_codes_parcours.FORMATION_PARCOURS_TYPES,
                             'labels' : sco_codes_parcours.FORMATION_PARCOURS_DESCRS,
                             'explanation' : "détermine notamment le nombre de semestres et les règles de validation d'UE et de semestres (barres)",
+                            'default' : sco_codes_parcours.DEFAULT_TYPE_PARCOURS,
                             'readonly' : is_locked,
                             }),
         ('formation_code', { 'size' : 12, 'title' : 'Code formation', 'explanation' : 'code interne. Toutes les formations partageant le même code sont compatibles (compensation de semestres, capitalisation d\'UE).  Laisser vide si vous ne savez pas, ou entrer le code d\'une formation existante.' }),

Modified: branches/ScoDoc7/sco_utils.py
===================================================================
--- branches/ScoDoc7/sco_utils.py	2018-09-19 21:24:59 UTC (rev 1797)
+++ branches/ScoDoc7/sco_utils.py	2018-09-20 14:33:05 UTC (rev 1798)
@@ -83,6 +83,7 @@
 UE_STANDARD = 0 # UE "fondamentale"
 UE_SPORT = 1    # bonus "sport"
 UE_STAGE_LP = 2 # ue "projet tuteuré et stage" dans les Lic. Pro.
+UE_STAGE_10 = 3 # ue "stage" avec moyenne requise > 10
 UE_ELECTIVE = 4 # UE "élective" dans certains parcours (UCAC?, ISCID)
 UE_PROFESSIONNELLE = 5 # UE "professionnelle" (ISCID, ...)
 
@@ -94,6 +95,7 @@
 UE_TYPE_NAME = { UE_STANDARD : 'Standard', 
                  UE_SPORT : 'Sport/Culture (points bonus)', 
                  UE_STAGE_LP : "Projet tuteuré et stage (Lic. Pro.)",
+                 UE_STAGE_10 : "Stage (moyenne min. 10/20)",
                  UE_ELECTIVE : "Elective (ISCID)",
                  UE_PROFESSIONNELLE : "Professionnelle (ISCID)"
 #                 UE_FONDAMENTALE : '"Fondamentale" (eg UCAC)',


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