[Scodoc-devel] Listes Absences

SOUDIERE Dominique dominique.soudiere at univ-lehavre.fr
Mer 12 Juin 20:18:13 CEST 2013


Voici la version purgée du bouton Jours ainsi que de l'ascenseur vertical.
La sélection se fait par suivant précédent (haut et bas de table).
J'ai réglé à 15 lignes par défaut.
J'ai pensé à un bouton recherche mais ça prend de la place.
Pour les plugins il suffit cette fois retirer ColVis sur les 3 que j'ai 
fournis.
A tester sur mac.
Sur firefox windows il y a juste encore un petit défaut avec un 
ascenseur horizontal sur la colonne gauche qui est fixée. Il cache le 
dernier étudiant.
Cela n'empêche pas vraiment la saisie. Ca n'apparait pas pour les autres 
environnements.
Décidément les navigateurs ont tous leurs caprices.

Le 12/06/2013 16:20, Emmanuel Viennet a écrit :
> 2013/6/12 SOUDIERE Dominique <dominique.soudiere at univ-lehavre.fr>:
>> Je propose la suppression du bouton Jours qui somme toute n'apporte pas
>> énormément.
>> J'ai testé sur tablette samsung et Ipad , windows.
>> Reste à voir sur mac mais je n'en ai pas sous la main.
>> Est-ce que je t'envoi la modif? Les améliorations pourront venir ensuite.
>> Reste juste à voir si cette version  est utile.
> A toi de voir. Si tu as une version stable, utile et testée, je veux
> bien tester et intégrer.
>
>> Dominique
>>
>>
>> Le 12/06/2013 11:22, Emmanuel Viennet a écrit :
>>
>>> 2013/6/12 SOUDIERE Dominique <dominique.soudiere at univ-lehavre.fr>:
>>>> As-tu placé les fichiers js que je t'ai fourni dans le zip précédent ou
>>>> d'autres versions? Toutes les versions ne sont pas compatible avec jQuery
>>>> dernière version.
>>> Ceux du zip.
>>>
>>> Je n'ai testé que sur Chrome sur ordi (Mac), pas sur tablette.
>>>
>>>
>>>> Je viens d'essayer sur ipad ça marche bien.
>>>> Effectivement le bouton "jours" une fois connecté ne se désactive pas
>>>> mais ç
>>>> n'empêche pas la saisie ni de scroller . Par contre c'était le cas avec
>>>> d'autres versions des plugins. D'où ma remarque.
>>>> Je regarderai mais je n'ai pas encore trouvé un réglage qui évite ça.
>>>> De toute façon on a le temps puisque la gestion des absences se fera à la
>>>> rentrée maintenant.
>>>> Merci.
>>>> Dominique
>>>>
>>>>
>>>> Le 12/06/2013 10:49, Emmanuel Viennet a écrit :
>>>>
>>>>> Merci. J'ai testé. C'est joli mais pas encore utilisable (bouton jour
>>>>> qui fait descendre un menu qui reste baissé et cache les noms, et
>>>>> impossibilité de scroller verticalement, ce qui bloque la saisie).
>>>>> J'attends donc avant d'intégrer.
>>>>> Emmanuel
>>>>>
>>>>>
>>>>> 2013/6/11 SOUDIERE Dominique <dominique.soudiere at univ-lehavre.fr>:
>>>>>> 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.
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Scodoc-devel mailing list
>>>>>> Scodoc-devel at rt.iutv.univ-paris13.fr
>>>>>> https://www-rt.iutv.univ-paris13.fr/mailman/listinfo/scodoc-devel
>>>>>>
>>>> _______________________________________________
>>>> Scodoc-devel mailing list
>>>> Scodoc-devel at rt.iutv.univ-paris13.fr
>>>> https://www-rt.iutv.univ-paris13.fr/mailman/listinfo/scodoc-devel
>>
>> _______________________________________________
>> Scodoc-devel mailing list
>> Scodoc-devel at rt.iutv.univ-paris13.fr
>> https://www-rt.iutv.univ-paris13.fr/mailman/listinfo/scodoc-devel

-------------- section suivante --------------
Index: html_sco_header.py
===================================================================
--- html_sco_header.py	(revision 1239)
+++ 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 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, 25,30,50, 100, -1], [5, 10, 15, 20, 25,30,50, 100, "All"]], "iDisplayLength": 15,  "oLanguage": {"oPaginate": {"sFirst": "Premier - ","sPrevious":"Précédent - ","sNext":" - Suivant - ","sLast": "Dernier"}},"bInfo": false,"bSort": false,"bJQueryUI": true, "sScrollX":  ( 0.5 * $(window).width() ), "bScrollCollapse": true,"sDom": "r<clear>ptp"} );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: ZAbsences.py
===================================================================
--- ZAbsences.py	(revision 1239)
+++ 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