[Scodoc-devel] Proposition modification Entreprises

SOUDIERE Dominique dominique.soudiere at univ-lehavre.fr
Ven 1 Mar 23:08:24 CET 2013


Bonjour,
je fais une autre proposition de modification.
Voici le fichier svn.
Il intégre ma modification concernant l’anonymat de la liste des 
moyennes et ajoute la possibilité d'afficher la liste des contacts d'un 
étudiant en cliquant sur son nom depuis les listes de contacts 
entreprises ou depuis sa fiche personnelle (en bas ŕ droite sous 
absences j'ai mis un lien vers les contacts).
Cela permettrait je pense une meilleur convivialité pour consulter le 
bilan de suivi de stage ou de projet d'un étudiant par exemple.

Cordialement.
Dominique
-------------- section suivante --------------
Index: ZAbsences.py
===================================================================
--- ZAbsences.py	(revision 1197)
+++ ZAbsences.py	(working copy)
@@ -370,7 +370,7 @@
         if moduleimpl_id:
             req += ' and moduleimpl_id=%(moduleimpl_id)s'
         cursor.execute(req, vars())
-        logdb(REQUEST, cnx, 'AnnuleAbsence', etudid=etudid,
+        logdb(REQUEST, cnx, 'AnnuleAbsenceAll', etudid=etudid,
               msg='JOUR=%(jour)s,MATIN=%(matin)s,moduleimpl_id=%(moduleimpl_id)s'%vars())
         cnx.commit()
         invalidateAbsEtudDate(self, etudid, jour)
Index: config/scodoc_config.py
===================================================================
--- config/scodoc_config.py	(revision 1197)
+++ config/scodoc_config.py	(working copy)
@@ -65,7 +65,7 @@
 #
 from bonus_sport import *
 
-CONFIG.compute_bonus = bonus_iutv
+CONFIG.compute_bonus = bonus_iutlh
 
 #
 #   ------------- Capitalisation des UEs -------------
Index: sco_recapcomplet.py
===================================================================
--- sco_recapcomplet.py	(revision 1197)
+++ sco_recapcomplet.py	(working copy)
@@ -38,6 +38,7 @@
 def formsemestre_recapcomplet(context, formsemestre_id=None, 
                               modejury=False, # affiche lien saisie decision jury
                               hidemodules=False, # cache colonnes notes modules
+			      hidenames=False, # cache le nom des étudiants
                               tabformat='html',
                               sortcol=None,
                               xml_with_decisions=False, # XML avec decisions
@@ -87,13 +88,17 @@
         if hidemodules:
             H.append('checked')
         H.append(""" >cacher les modules</input>""")
+	H.append( """<input type="checkbox" name="hidenames" value="1" onChange="document.f.submit()" """)
+        if hidenames:
+            H.append('checked')
+        H.append(""" >listing "anonyme"</input>""")
 
     if tabformat == 'xml':
         REQUEST.RESPONSE.setHeader('content-type', 'text/xml')
     
     H.append( do_formsemestre_recapcomplet(
             context, REQUEST, 
-            formsemestre_id, format=tabformat, hidemodules=hidemodules, 
+            formsemestre_id, format=tabformat, hidemodules=hidemodules, hidenames=hidenames,
             modejury=modejury, sortcol=sortcol, xml_with_decisions=xml_with_decisions,
             rank_partition_id=rank_partition_id
             ) )
@@ -118,6 +123,7 @@
     context=None, REQUEST=None, formsemestre_id=None,
     format='html', # html, xml, xls, xlsall
     hidemodules=False, # ne pas montrer les modules (ignoré en XML)
+    hidenames=False, # ne pas montrer les noms des étudiants (ignoré en XML)
     xml_nodate=False, # format XML sans dates (sert pour debug cache: comparaison de XML)
     modejury=False, # saisie décisions jury
     sortcol=None, # indice colonne a trier dans table T
@@ -141,6 +147,7 @@
     context=None, REQUEST=None, formsemestre_id=None,
     format='html', # html, xml, xls, xlsall
     hidemodules=False, # ne pas montrer les modules (ignoré en XML)
+    hidenames=False, # ne pas montrer les noms des étudiants (ignoré en XML)
     xml_nodate=False, # format XML sans dates (sert pour debug cache: comparaison de XML)
     modejury=False, # saisie décisions jury
     sortcol=None, # indice colonne a trier dans table T
@@ -181,7 +188,10 @@
 
     # Construit une liste de listes de chaines: le champs du tableau resultat (HTML ou CSV)
     F = []
-    h = [ rank_label, 'Nom' ]
+    if hidenames:
+       h = [ rank_label, 'Code' ]
+    else:
+       h = [ rank_label, 'Nom' ]
     # Si CSV ou XLS, indique tous les groupes
     if format[:3] == 'xls' or format == 'csv':
         for partition in partitions:
@@ -254,8 +264,11 @@
                 rank = ''
         else:
             rank = nt.get_etud_rang(etudid)
-        
-        l = [ rank, nt.get_nom_short(etudid) ]  # rang, nom, 
+
+	if hidenames:
+            l = [ rank, nt.get_codeNIP(etudid) ]  # rang, code, 
+	else:
+            l = [ rank, nt.get_nom_short(etudid) ]  # rang, nom, 
         if format[:3] == 'xls' or format == 'csv': # tous les groupes
             for partition in partitions:                
                 group = partitions_etud_groups[partition['partition_id']].get(etudid, None)
Index: sco_abs_views.py
===================================================================
--- sco_abs_views.py	(revision 1197)
+++ sco_abs_views.py	(working copy)
@@ -446,6 +446,7 @@
     etud = context.getEtudInfo(filled=1, REQUEST=REQUEST)[0]
     etudid = etud['etudid']
     AnneeScolaire = int(context.AnneeScolaire(REQUEST))
+    AnneeActuelle=AnneeScolaire
     datedebut = str(AnneeScolaire) +'-08-31'
     datefin = str(AnneeScolaire+1) +'-07-31'
     nbabs = context.CountAbs(etudid=etudid, debut=datedebut, fin=datefin)
Index: ZEntreprises.py
===================================================================
--- ZEntreprises.py	(revision 1197)
+++ ZEntreprises.py	(working copy)
@@ -158,6 +158,18 @@
     input_formators  = { 'date' : DateDMYtoISO }
     )
 
+# -----------  Etudiants
+_entreprise_contact_etudEditor = EditableTable(
+    'entreprise_contact',
+    'etudid',
+    ('entreprise_contact_id', 'date',
+     'type_contact', 'entreprise_id', 'entreprise_corresp_id',
+     'etudid', 'description', 'enseignant'),
+    sortkey = 'date',
+    output_formators = { 'date' : DateISOtoDMY },
+    input_formators  = { 'date' : DateDMYtoISO }
+    )
+
 # ---------------
 
 class ZEntreprises(ObjectManager,
@@ -395,11 +407,17 @@
         cnx = self.GetDBConnexion()
         return _entreprise_contactEditor.list( cnx, **kw )
 
+    security.declareProtected(ScoEntrepriseView, 'do_entreprise_contact_etud_list')
+    def do_entreprise_contact_etud_list(self, **kw):
+        "entreprise_contact_list"
+        cnx = self.GetDBConnexion()
+        return _entreprise_contactEditor.list( cnx, **kw )
+
     security.declareProtected(ScoEntrepriseView, 'do_entreprise_contact_edit')
     def do_entreprise_contact_edit(self, *args, **kw):
         "entreprise_contact_edit"
         cnx = self.GetDBConnexion()
-        _entreprise_contactEditor.edit( cnx, *args, **kw )
+        _entreprise_contact_etudEditor.edit( cnx, *args, **kw )
    
     #
     security.declareProtected(ScoEntrepriseView, 'do_entreprise_check_etudiant')
Index: dtml/entreprises/entreprise_contact_list.dtml
===================================================================
--- dtml/entreprises/entreprise_contact_list.dtml	(revision 1197)
+++ dtml/entreprises/entreprise_contact_list.dtml	(working copy)
@@ -1,16 +1,21 @@
 <dtml-var "entreprise_header(REQUEST=REQUEST)">
 
 <dtml-if entreprise_id>
-<dtml-call "REQUEST.set( 'E', do_entreprise_list( args={ 'entreprise_id' : entreprise_id } )[0])">
-<dtml-call "REQUEST.set( 'C', do_entreprise_contact_list( args={ 'entreprise_id' : entreprise_id }) )">
-
-<h2 class="entreprise_contact">Listes des contacts avec l'entreprise <dtml-var "E['nom']"> </h2>
-
+	   <dtml-call "REQUEST.set( 'E', do_entreprise_list( args={ 'entreprise_id' : entreprise_id} )[0])">
+	   <dtml-call "REQUEST.set( 'C', do_entreprise_contact_list( args={ 'entreprise_id' : entreprise_id}) )">
+           <h2 class="entreprise_contact">Listes des contacts avec l'entreprise <dtml-var "E['nom']"> </h2>
 <dtml-else>
-<h2 class="entreprise_contact">Listes des contacts</h2>
-<dtml-call "REQUEST.set( 'C', do_entreprise_contact_list( args={ }))">
+<dtml-if etudid>
+	<dtml-call "REQUEST.set( 'E', do_entreprise_list( args={ }))">
+	<dtml-call "REQUEST.set( 'C', do_entreprise_contact_etud_list( args={'etudid': etudid}))">
+	<h2 class="entreprise_contact">Listes des contacts avec un étudiant </h2>
+<dtml-else>
+	<dtml-call "REQUEST.set( 'C', do_entreprise_contact_list( args={ }))">
+	<h2 class="entreprise_contact">Listes des contacts</h2>
+</dtml-if etudid>
 </dtml-if entreprise_id>
 
+
 <table class="contact_list">
 
 <tr><th>Date</th><th>Objet</th><dtml-unless entreprise_id><th>Entreprise</th></dtml-unless><th>Etudiant</th><th>Description</th></tr>
@@ -30,7 +35,7 @@
  <td class="contact_descr">
  <dtml-if "F['etudid']">
  <dtml-in "getEtudInfo(etudid=F['etudid'],filled=1)" mapping>
-   <a href="<dtml-var ScoURL>/ficheEtud?etudid=<dtml-var "F['etudid']">"><dtml-var nomprenom></a>
+   <a href="entreprise_contact_list?etudid=<dtml-var "F['etudid']">"><dtml-var nomprenom></a>
  </dtml-in>
  </dtml-if etudid>
  </td>
@@ -51,4 +56,4 @@
 </dtml-if>
 </dtml-unless>
 
-<dtml-var "entreprise_footer(REQUEST=REQUEST)">
\ No newline at end of file
+<dtml-var "entreprise_footer(REQUEST=REQUEST)">
Index: logos/logo_header.jpg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: logos/logo_footer.jpg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: html_sidebar.py
===================================================================
--- html_sidebar.py	(revision 1197)
+++ html_sidebar.py	(working copy)
@@ -115,6 +115,10 @@
 <li>     <a href="%(ScoURL)s/Absences/CalAbs?etudid=%(etudid)s">Calendrier</a></li>
 <li>     <a href="%(ScoURL)s/Absences/ListeAbsEtud?etudid=%(etudid)s">Liste</a></li>
 </ul>
+<b>Entreprises</b>
+<ul>
+<li>     <a href="%(ScoURL)s/Scolarite/Entreprises/entreprise_contact_list?etudid=%(etudid)s">Contacts entreprises</a></li>
+</ul>
 """ % params )
     else:
         pass # H.append("(pas d'étudiant en cours)")
Index: notes_table.py
===================================================================
--- notes_table.py	(revision 1197)
+++ notes_table.py	(working copy)
@@ -272,6 +272,9 @@
             # Tri par ordre alphabetique de NOM
             return [ x['etudid'] for x in self.inscrlist ]
 
+    def get_codeNIP(self,etudid):
+        return self.identdict[etudid]['code_nip'] or self.identdict[etudid]['etudid'] 
+
     def get_sexnom(self,etudid):
         return self.identdict[etudid]['sexe'] + ' ' + self.identdict[etudid]['nom'].upper()
     def get_nom_short(self, etudid):


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