[Scodoc-devel] [SVN] Scolar : [1563] amelioration menu choix groupe ( quand utilise dans autres formulaires)

eviennet at lipn.univ-paris13.fr eviennet at lipn.univ-paris13.fr
Lun 12 Sep 18:58:54 CEST 2016


Une pièce jointe HTML a été nettoyée...
URL: <https://www-rt.iutv.univ-paris13.fr/pipermail/scodoc-devel/attachments/20160912/c09ea1c0/attachment.html>
-------------- section suivante --------------
Modified: branches/ScoDoc7/sco_archives.py
===================================================================
--- branches/ScoDoc7/sco_archives.py	2016-09-12 10:44:49 UTC (rev 1562)
+++ branches/ScoDoc7/sco_archives.py	2016-09-12 16:58:54 UTC (rev 1563)
@@ -380,6 +380,7 @@
                             cancelbutton = 'Annuler', method='POST',
                             submitlabel = 'Générer et archiver les documents', 
                             name='tf',
+                            formid="group_selector",
                             html_foot_markup=menu_choix_groupe )
     if  tf[0] == 0:
         return '\n'.join(H) + '\n' + tf[1] +  '\n'.join(F)

Modified: branches/ScoDoc7/sco_groups_view.py
===================================================================
--- branches/ScoDoc7/sco_groups_view.py	2016-09-12 10:44:49 UTC (rev 1562)
+++ branches/ScoDoc7/sco_groups_view.py	2016-09-12 16:58:54 UTC (rev 1563)
@@ -138,40 +138,15 @@
     Si submit_on_change, ajoute une classe "submit_on_change" qui est utilisee en JS
     """
     default_group_id = sco_groups.get_default_group(context, groups_infos.formsemestre_id)
-
-    if submit_on_change:
-        klass = 'submit_on_change'
-    else:
-        klass = ''
+    
     H = [ """<form id="group_selector" method="get">
     <input type="hidden" name="formsemestre_id" id="formsemestre_id" value="%s"/>
     <input type="hidden" name="default_group_id" id="default_group_id" value="%s"/>
-    Groupes: <select name="group_ids" id="group_ids_sel" class="multiselect %s" multiple="multiple">
-    """ % (groups_infos.formsemestre_id, default_group_id, klass) ]
+    Groupes: 
+    """ % (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) )
-
+    H.append( menu_groups_choice(context, groups_infos, submit_on_change=submit_on_change) )
     
-    for partition in groups_infos.partitions:
-        H.append('<optgroup label="%s">' % partition['partition_name'] )
-        # Les groupes dans cette partition:
-        for g in sco_groups.get_partition_groups(context, partition):
-            if g['group_id'] in groups_infos.group_ids:
-                selected = 'selected'
-            else:
-                selected = ''
-            if g['group_name']:
-                n_members = len(sco_groups.get_group_members(context, g['group_id']))
-                H.append('<option value="%s" %s>%s (%s)</option>' 
-                         % (g['group_id'], selected, g['group_name'], n_members) )
-        H.append('</optgroup>')
-    H.append('</select> ')
     if with_selectall_butt:
         H.append("""<input type="button" value="sélectionner tous" onmousedown="select_tous();"/>""")
     H.append('</form>')
@@ -179,20 +154,29 @@
     return '\n'.join(H)
 
 
-def menu_groups_choice(context, groups_infos):
+def menu_groups_choice(context, groups_infos, submit_on_change=False):
     """menu 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é.
     (utilisé pour retrouver le semestre et proposer la liste des autres groupes)
     """
     default_group_id = sco_groups.get_default_group(context, groups_infos.formsemestre_id)
+    
+    if submit_on_change:
+        klass = 'submit_on_change'
+    else:
+        klass = ''
+    H = [ """<select name="group_ids" id="group_ids_sel" class="multiselect %s" multiple="multiple">
+    """ % (klass,)]
+    
+    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 = [ """<select name="group_ids" id="group_ids_sel_menu" class="multiselect" multiple="multiple">
-    <option value="%s" %s>Tous les inscrits</option>
-    """ % (default_group_id, 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:
@@ -206,23 +190,12 @@
                 H.append('<option value="%s" %s>%s (%s)</option>' 
                          % (g['group_id'], selected, g['group_name'], n_members) )
         H.append('</optgroup>')
-    H.append('</select>')
-    H.append("""
-    <script type="text/javascript">
-  $(document).ready(function() {
-  $('#group_ids_sel_menu').multiselect(
-    {
-    includeSelectAllOption: false,
-    nonSelectedText:'choisir...',
-    }
-    );
-    });
-    </script>
-    """)
+    H.append('</select> ')
     return '\n'.join(H)
 
-    
 
+
+
 def menu_group_choice(context, group_id=None, formsemestre_id=None):
     """Un bête menu pour choisir un seul groupe
     group_id est le groupe actuellement sélectionné.

Modified: branches/ScoDoc7/sco_pvjury.py
===================================================================
--- branches/ScoDoc7/sco_pvjury.py	2016-09-12 10:44:49 UTC (rev 1562)
+++ branches/ScoDoc7/sco_pvjury.py	2016-09-12 16:58:54 UTC (rev 1563)
@@ -423,6 +423,7 @@
                             cancelbutton = 'Annuler', method='get',
                             submitlabel = 'Générer document', 
                             name='tf',
+                            formid="group_selector",
                             html_foot_markup=menu_choix_groupe
         )
     if  tf[0] == 0:
@@ -509,6 +510,7 @@
                             cancelbutton = 'Annuler', method='POST',
                             submitlabel = 'Générer document', 
                             name='tf',
+                            formid="group_selector",
                             html_foot_markup=menu_choix_groupe )
     if  tf[0] == 0:
         return '\n'.join(H) + '\n' + tf[1] + F


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