[Scodoc-devel] Listes Absences

SOUDIERE Dominique dominique.soudiere at univ-lehavre.fr
Mar 11 Juin 22:13:28 CEST 2013


Merci Yann.
Voici la version telle que décrite.
A tester.
J'oubliais tout à l'heure deux soucis à ragler encore:
le bouton Jours n'est pas retiré une fois utilisé. C'est peu génant mais 
je n'ai pas encore trouvé le pb.
l’ascenseur vertical sous Chrome qui ne défile pas correctement (semble 
aimanté).
Si quelqu'un connait les pluggins Datatables...il est le bienvenu


Le 11/06/2013 21:33, Yann Leboulanger a écrit :
> On 06/11/2013 09:28 PM, SOUDIERE Dominique wrote:
>> Bonsoir Emmanuel
>>
>> Mise en place:
>> mettre les 3 fichiers js dans /static/jQuery.
>> 3 fichiers pythons sont modifiés comme dans le svn absences joint:
>> Zabsences.py, sco_abs_views.ph et html_sco_header.ph
>
> Il serait plus pratique pour Emmanuel d'avoir juste le diff et non le 
> fichier complet pour les fichiers modifiés en faisant :
>
> svn diff x.py y.py z.py > monpatch.diff
>
> Merci en tout cas pour le travail que tu fais pour ScoDoc.

-------------- section suivante --------------
Index: html_sco_header.py
===================================================================
--- html_sco_header.py	(revision 1232)
+++ html_sco_header.py	(working copy)
@@ -37,6 +37,7 @@
                container=None,     # objet qui a lancé la demande
                page_title='',      # page title
                no_side_bar=False,  # hide sidebar
+               fixedcolumns=False,  # fixe header and first column (avec id="Mytable")
                cssstyles=[],       # additionals CSS sheets
                javascripts=[],     # additionals JS filenames to load
                scripts=[],         # script to put in page header
@@ -94,6 +95,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
+<meta name="viewport" content="width=device-width"/>
 <title>%(page_title)s</title>
 <meta http-equiv="Content-Type" content="text/html; charset=%(encoding)s" />
 <meta http-equiv="Content-Style-Type" content="text/css" />
@@ -127,6 +129,10 @@
     if init_jquery_ui:
         H.append('<script language="javascript" type="text/javascript" src="/ScoDoc/static/libjs/jquery-ui/js/jquery-ui-1.7.2.custom.min.js"></script>')
         H.append('<script language="javascript" type="text/javascript" src="/ScoDoc/static/libjs/jquery-ui/js/jquery-ui-i18n.js"></script>')
+    if fixedcolumns:
+        H.append('<script language="javascript" type="text/javascript" src="/ScoDoc/static/jQuery/jquery-1.10.1.min.js"></script> <script language="javascript" type="text/javascript" src="/ScoDoc/static/jQuery/jquery.dataTables.js"></script>') 
+        H.append('<script language="javascript" type="text/javascript" src="/ScoDoc/static/jQuery/FixedColumns.js"></script>')
+        H.append('<script language="javascript" type="text/javascript" src="/ScoDoc/static/jQuery/ColVis.js"></script><script type="text/javascript" charset="utf-8">$(document).ready( function () {var oTable = $("#Mytable").dataTable( { "bPaginate": true,  "bAutoWidth": true,"sPaginationType":"full_numbers",  "aLengthMenu": [[5, 10, 15, 20, 50, 100, -1], [5, 10, 15, 20, 50, 100, "All"]], "iDisplayLength": 10,  "oLanguage": {"oPaginate": {"sFirst": "Premier - ","sPrevious":"Précédent - ","sNext":" - Suivant - ","sLast": "Dernier"}},"bInfo": false,"bSort": false, "bJQueryUI": true, "sScrollX":  ( 0.5 * $(window).width() ), "sScrollY":  ( 0.5 * $(window).height() ),"bScrollCollapse": true,"sDom": "C<clear>rtip","oColVis": {"buttonText": "Jours","activate": "click","sAlign": "right","aiExclude": [ 0 ]}} );new FixedColumns( oTable);} );</script><style>table {table-layout:fixed; width: 100%;}</style>')
     if init_google_maps:
         H.append('<script type="text/javascript" src="/ScoDoc/static/libjs/jquery.ui.map.full.min.js"></script>')
     # JS additionels
@@ -201,3 +207,4 @@
 
 
 
+
Index: sco_abs_views.py
===================================================================
--- sco_abs_views.py	(revision 1232)
+++ sco_abs_views.py	(working copy)
@@ -469,7 +469,7 @@
           """<table><tr><td><h2>Absences de <b>%(nomprenom)s (%(inscription)s)</h2><p>""" % etud,
           """<font color="#EE0000">A : absence NON justifiée</font><br>
              <font color="#F8B7B0">a : absence justifiée</font><br>
-	     <font color="#8EA2C6">X : justifification sans absence</font><br>
+	     <font color="#8EA2C6">X : justification sans absence</font><br>
              %d absences sur l'année, dont %d justifiées (soit %d non justifiées)
            """  % (nbabs, nbabsjust, nbabs-nbabsjust),
            """</td>
Index: ZAbsences.py
===================================================================
--- ZAbsences.py	(revision 1232)
+++ ZAbsences.py	(working copy)
@@ -837,6 +837,7 @@
         
         H = [ self.sco_header(page_title='Saisie hebdomadaire des absences',
                               init_jquery_ui=True,
+			      fixedcolumns=True,
                               javascripts=['libjs/qtip/jquery.qtip.js',
                                            'js/etud_info.js',
                                            'js/abs_ajax.js'
@@ -954,15 +955,18 @@
         
         H = [ self.sco_header(page_title='Saisie des absences',
                               init_jquery_ui=True,
+			      fixedcolumns=True,
                               javascripts=['libjs/qtip/jquery.qtip.js',
                                            'js/etud_info.js',
                                            'js/abs_ajax.js'
                                            ],
                               no_side_bar=1, REQUEST=REQUEST),
-              """<table border="0" cellspacing="16"><tr><td>
+              """
+
+<table border="0" cellspacing="16"><tr><td>
               <h2>Saisie des absences %s %s, 
               les <span class="fontred">%s</span></h2>
-              <p>
+              
               <a href="%s">%s</a>
               <form action="doSignaleAbsenceGrSemestre" method="post">              
               """ % (gr_tit, sem['titre_num'], dayname, url_link_semaines, msg) ]
@@ -998,12 +1002,12 @@
                 sel = ''
             else:
                 sel = 'selected' # aucun module specifie
-            H.append("""<p>
-    Module concerné par ces absences (optionnel): <select id="moduleimpl_id" name="moduleimpl_id" onchange="document.location='%(url)s&moduleimpl_id='+document.getElementById('moduleimpl_id').value">
+            H.append("""
+    Module concerné par ces absences: <select id="moduleimpl_id" name="moduleimpl_id" onchange="document.location='%(url)s&moduleimpl_id='+document.getElementById('moduleimpl_id').value">
     <option value="" %(sel)s>non spécifié</option>
     %(menu_module)s
     </select>
-</p>""" % {'menu_module': menu_module, 'url' : base_url, 'sel':sel })
+""" % {'menu_module': menu_module, 'url' : base_url, 'sel':sel })
 
         H += self._gen_form_saisie_groupe(etuds, colnames, dates, destination, dayname, moduleimpl_id)
         H.append(self.sco_footer(REQUEST))
@@ -1030,21 +1034,23 @@
         </script>
         <div id="AjaxDiv"></div>
         <br/>
-        <table rules="cols" frame="box">
-        <tr><td> </td>
+
+        <table frame="box" rules="cols"  cellpadding="0" cellspacing="0" border="0" id="Mytable"><thead >
+        <tr><td width="250px">  </td>
+	
         """]
+
         # Titres colonnes
-        if dayname:
-            for jour in colnames:
-                H.append('<th colspan="2" width="100px" style="padding-left: 5px; padding-right: 5px;">' + dayname + '</th>')                
-            H.append('</tr><tr><td> </td>')
-        
         for jour in colnames:
-            H.append('<th colspan="2" width="100px" style="padding-left: 5px; padding-right: 5px;">' + jour + '</th>')
+            H.append('<th colspan="1" width="100px" style="padding-left: 5px; padding-right: 5px;">')
+            if dayname:
+                H.append( dayname + '<br>')
+                H.append( jour + '</br><br>')
+            else:
+                H.append( jour + '<br>')
 
-        H.append('</tr><tr><td> </td>')
-        H.append('<th>AM</th><th>PM</th>' * len(colnames) )
-        H.append('</tr>')
+            H.append('AM    PM</br></th>' )
+        H.append('</thead><tbody >')
         #
         if not etuds:
             H.append('<tr><td><span class="redboldtext">Aucun étudiant inscrit !</span></td></tr>')
@@ -1075,17 +1081,17 @@
                     checked = 'checked'
                 else:
                     checked = ''
-                H.append('<td %s><input type="checkbox" name="abslist:list" value="%s" %s onclick="on_toggled(this, \'%s\', \'%s\')"/></td>'
+                H.append('<td %s><center><input type="checkbox" name="abslist:list" value="%s" %s onclick="on_toggled(this, \'%s\', \'%s\')"/>    '
                          % (matin_bgcolor, etudid+':'+date+':'+'am', checked, etudid, date+':am'))
                 # apres midi
                 if self.CountAbs( etudid, date, date, False, moduleimpl_id=moduleimpl_id):
                     checked = 'checked'
                 else:
                     checked = ''
-                H.append('<td><input type="checkbox" name="abslist:list" value="%s" %s onclick="on_toggled(this, \'%s\', \'%s\')"/></td>'
+                H.append('<input type="checkbox" name="abslist:list" value="%s" %s onclick="on_toggled(this, \'%s\', \'%s\')"/></center></td>'
                          % (etudid+':'+date+':'+'pm', checked, etudid, date+':pm'))
             H.append('</tr>')
-        H.append('</table>')
+        H.append('</tbody></table>')
         # place la liste des etudiants et les dates pour pouvoir effacer les absences
         H.append('<input type="hidden" name="etudids" value="%s"/>'
                  % ','.join( [ etud['etudid'] for etud in etuds ] ) )


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