[scodoc-devel] [SVN] Scolar : [1799] Amelioration avis poursuites etudes par V.

eviennet at lipn.univ-paris13.fr eviennet at lipn.univ-paris13.fr
Jeu 20 Sep 19:09:57 CEST 2018


Une pièce jointe HTML a été nettoyée...
URL: https://listes.univ-paris13.fr/pipermail/scodoc-devel/attachments/20180920/fd0e6e73/attachment.htm 
-------------- section suivante --------------
Modified: branches/ScoDoc7/sco_poursuite_dut.py
===================================================================
--- branches/ScoDoc7/sco_poursuite_dut.py	2018-09-20 14:33:05 UTC (rev 1798)
+++ branches/ScoDoc7/sco_poursuite_dut.py	2018-09-20 17:09:57 UTC (rev 1799)
@@ -38,6 +38,7 @@
 from gen_tables import GenTable
 import sco_formsemestre
 import sco_groups
+import ZAbsences
 from sco_codes_parcours import code_semestre_validant, code_semestre_attente
 
 def etud_get_poursuite_info(context, sem, etud):
@@ -56,20 +57,48 @@
                 etudid = etud['etudid']
                 nt = context._getNotesCache().get_NotesTable(context, s['formsemestre_id'])
                 dec = nt.get_etud_decision_sem(etudid)
-                if (dec
+                # Moyennes et rangs des UE
+                ues = nt.get_ues(filter_sport=True)
+                moy_ues = [ (ue['acronyme'], fmt_note(nt.get_etud_ue_status(etudid, ue['ue_id'])['moy'])) for ue in ues]
+                rg_ues = [("rang_" + ue['acronyme'], nt.ue_rangs[ue['ue_id']][0][etudid]) for ue in ues]
+
+                # Moyennes et rang des modules
+                modimpls = nt.get_modimpls()  # recupération des modules
+                modules = []
+                rangs = []
+                for ue in ues:  # on parcourt chaque UE
+                    for modimpl in modimpls:  # dans chaque UE les modules
+                        if modimpl['module']['ue_id'] == ue['ue_id']:
+                            codeModule = modimpl['module']['code']
+                            noteModule = fmt_note(nt.get_etud_mod_moy(modimpl['moduleimpl_id'], etudid))
+                            if noteModule != 'NI':  # si étudiant inscrit au module
+                                rangModule = nt.mod_rangs[modimpl['moduleimpl_id']][0][etudid]
+                                modules.append([codeModule, noteModule])
+                                rangs.append(["rang_" + codeModule, rangModule])
+
+                # Absences
+                AbsSemEtud = ZAbsences.getAbsSemEtud(context, nt.sem, etudid)
+                NbAbs = AbsSemEtud.CountAbs()
+                NbAbsJust = AbsSemEtud.CountAbsJust()
+                if (dec and not sem_descr #not sem_descr pour ne prendre que le semestre validé le plus récent
                     and (code_semestre_validant(dec['code']) or code_semestre_attente(dec['code']))
                     and nt.get_etud_etat(etudid) == 'I'):
-                    sem_descr = odict( data=(
-                        ('moy', nt.get_etud_moy_gen(etudid)),
-                        ('rang', nt.get_etud_rang(etudid)),
-                        ('effectif', len(nt.T)),
-                        ('date_debut', s['date_debut']),
-                        ('date_fin', s['date_fin']),
-                        ('periode', '%s - %s' % (s['mois_debut'], s['mois_fin']))
-                        ))
+                    d = [ ('moy', fmt_note(nt.get_etud_moy_gen(etudid))),
+                          ('moy_promo', fmt_note(nt.moy_moy)),
+                          ('rang', nt.get_etud_rang(etudid)),
+                          ('effectif', len(nt.T)),
+                          ('date_debut', s['date_debut']),
+                          ('date_fin', s['date_fin']),
+                          ('periode', '%s - %s' % (s['mois_debut'], s['mois_fin'])),
+                          ('AbsNonJust', NbAbs - NbAbsJust),
+                          ('AbsJust', NbAbsJust)
+                        ]
+                    d += moy_ues + rg_ues + modules + rangs  # ajout des 2 champs notes des modules et classement dans chaque module
+
+                    sem_descr = odict( data=tuple(d) )
         if not sem_descr:
-            sem_descr = odict( data=(('moy',''), ('rang',''), ('effectif', ''),
-                               ('date_debut', ''), ('date_fin', ''), ('periode', '')))
+            sem_descr = odict( data=(('moy',''),('moy_promo',''), ('rang',''), ('effectif', ''),
+                                ('date_debut', ''), ('date_fin', ''), ('periode', '')))
         sem_descr['semestre_id'] = sem_id
         semlist.append(sem_descr)
 
@@ -102,10 +131,14 @@
         etud['_prenom_target'] = 'ficheEtud?etudid=' + etud['etudid']
         etud['_nom_td_attrs'] = 'id="%s" class="etudinfo"' % (etud['etudid'])
         info = etud_get_poursuite_info(context, sem, etud)
-        ids =  _flatten_info(info)
+        idd = _flatten_info(info)
+        # On recupere la totalite des UEs dans ids
+        for id in idd:
+            if id not in ids:
+                ids += [id]
         infos.append(info)
     #
-    column_ids = ('sexe', 'nom', 'prenom', 'annee') + tuple(ids) + ('debouche',)
+    column_ids = ('sexe', 'nom', 'prenom', 'annee', 'date_naissance') + tuple(ids) + ('debouche',)
     titles = {}
     for c in column_ids:
         titles[c] = c


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