[Scodoc-devel] [SVN] Scolar : [1556] Amelioration menu choix groupes: option "tous".

eviennet at lipn.univ-paris13.fr eviennet at lipn.univ-paris13.fr
Dim 4 Sep 21:54:12 CEST 2016


Une pièce jointe HTML a été nettoyée...
URL: <https://www-rt.iutv.univ-paris13.fr/pipermail/scodoc-devel/attachments/20160904/c542daf5/attachment.html>
-------------- section suivante --------------
Modified: branches/ScoDoc7/sco_groups_view.py
===================================================================
--- branches/ScoDoc7/sco_groups_view.py	2016-09-04 18:56:46 UTC (rev 1555)
+++ branches/ScoDoc7/sco_groups_view.py	2016-09-04 19:54:12 UTC (rev 1556)
@@ -125,7 +125,7 @@
     H.append( context.sco_footer(REQUEST) )
     return '\n'.join(H)
 
-def form_groups_choice(context, groups_infos, with_selectall_butt=True):
+def form_groups_choice(context, groups_infos, with_selectall_butt=False):
     """form pour selection groupes
     group_ids est la liste des groupes actuellement sélectionnés
     et doit comporter au moins un élément, sauf si formsemestre_id est spécifié.
@@ -139,6 +139,15 @@
     Groupes: <select name="group_ids" id="group_ids_sel" class="multiselect" multiple="multiple">
     """ % (groups_infos.formsemestre_id, default_group_id) ]
 
+    n_members = len(sco_groups.get_group_members(context, default_group_id))
+    if default_group_id in groups_infos.group_ids:
+        selected = 'selected'
+    else:
+        selected = ''
+    H.append('<option class="default_group" value="%s" %s>%s (%s)</option>' 
+             % (default_group_id, selected, 'Tous', n_members) )
+
+    
     for partition in groups_infos.partitions:
         H.append('<optgroup label="%s">' % partition['partition_name'] )
         # Les groupes dans cette partition:
@@ -156,21 +165,7 @@
     if with_selectall_butt:
         H.append("""<input type="button" value="sélectionner tous" onmousedown="select_tous();"/>""")
     H.append('</form>')
-    H.append("""
-    <script type="text/javascript">
-  $(document).ready(function() {
-  $('#group_ids_sel').multiselect(
-    {
-    includeSelectAllOption: false,
-    nonSelectedText:'choisir...',
-    onChange: function(element, checked){
-    submit_group_selector();
-      }
-    }
-    );
-    });
-    </script>
-    """)
+    
     return '\n'.join(H)
 
 

Modified: branches/ScoDoc7/sco_saisie_notes.py
===================================================================
--- branches/ScoDoc7/sco_saisie_notes.py	2016-09-04 18:56:46 UTC (rev 1555)
+++ branches/ScoDoc7/sco_saisie_notes.py	2016-09-04 19:54:12 UTC (rev 1556)
@@ -457,9 +457,7 @@
 
     # Menu choix groupe:
     H.append("""<div id="group-tabs"><table><tr><td>""")
-    H.append( sco_groups_view.form_groups_choice(
-        context, groups_infos,
-        with_selectall_butt=False ))
+    H.append( sco_groups_view.form_groups_choice(context, groups_infos) )
     H.append('</td></tr></table></div>')
     
     H.append( """<div class="saisienote_etape1">
@@ -666,9 +664,7 @@
         '<div id="saisie_notes"><span class="eval_title">Saisie des notes</span>',
         ]
     H.append("""<div id="group-tabs"><table><tr><td>""")
-    H.append( sco_groups_view.form_groups_choice(
-        context, groups_infos,
-        with_selectall_butt=False ))
+    H.append( sco_groups_view.form_groups_choice(context, groups_infos) )
     H.append('</td><td style="padding-left: 35px;">')
     H.append( makeMenu( "Autres opérations", [
         { 'title' : 'Saisie par fichier tableur',

Modified: branches/ScoDoc7/static/js/groups_view.js
===================================================================
--- branches/ScoDoc7/static/js/groups_view.js	2016-09-04 18:56:46 UTC (rev 1555)
+++ branches/ScoDoc7/static/js/groups_view.js	2016-09-04 19:54:12 UTC (rev 1556)
@@ -81,6 +81,45 @@
     window.location = url.attr('base') + url.attr('path') + '?' + query_string;
 }
 
+// Menu choix groupe:
+$().ready(function() {
+    $('#group_ids_sel').multiselect(
+        {
+            includeSelectAllOption: false,
+            nonSelectedText:'choisir...',
+            onChange: function(element, checked){
+                if (checked == true) {
+                    var default_group_id = $(".default_group")[0].value;
+                    
+                    if (element.hasClass("default_group")) {
+                        // click sur groupe "tous"
+                        // deselectionne les autres
+                        $("#group_ids_sel option:selected").each( function(index, opt) {
+                            if (opt.value != default_group_id) {
+                                $("#group_ids_sel").multiselect('deselect', opt.value);
+                            }
+                        });
+                    
+                    } else {
+                        // click sur un autre item
+                        // si le groupe "tous" est selectionne et que l'on coche un autre, le deselectionner
+                        var default_is_selected = false;
+                        $("#group_ids_sel option:selected").each( function(index, opt) {
+                            if (opt.value == default_group_id) {
+                                default_is_selected = true;
+                                return false;
+                            }
+                        });
+                        if (default_is_selected) {
+                            $("#group_ids_sel").multiselect('deselect', default_group_id);
+                        }
+                    }        
+                }         
+                submit_group_selector();
+            }
+        }
+    );
+});
 
 // Trombinoscope
 $().ready(function(){


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