Only proposes to synchronise the group and its MLs when there is at least one ML...
authorStéphane Jacob <jacou@melix.net>
Wed, 29 Apr 2009 21:38:43 +0000 (23:38 +0200)
committerStéphane Jacob <jacou@melix.net>
Thu, 30 Apr 2009 07:52:43 +0000 (09:52 +0200)
classes/platalglobals.php.in
modules/xnetlists.php
templates/xnetgrp/annuaire.tpl
upgrade/0.10.1/01_groupex.sql [new file with mode: 0644]

index cc95b1b..94803e8 100644 (file)
@@ -60,12 +60,14 @@ class PlatalGlobals extends PlGlobals
             }
 
             if ($gp) {
-                $res = XDB::query('SELECT  a.*, d.nom AS domnom,
-                                           FIND_IN_SET(\'wiki_desc\', a.flags) AS wiki_desc,
-                                           FIND_IN_SET(\'notif_unsub\', a.flags) AS notif_unsub
+                $res = XDB::query("SELECT  a.*, d.nom AS domnom,
+                                           FIND_IN_SET('wiki_desc', a.flags) AS wiki_desc,
+                                           FIND_IN_SET('notif_unsub', a.flags) AS notif_unsub,
+                                           FIND_IN_SET('has_ml', a.flags) AS has_ml
                                      FROM  groupex.asso AS a
                                 LEFT JOIN  groupex.dom  AS d ON d.id = a.dom
-                                    WHERE  diminutif = {?}', $gp);
+                                    WHERE  diminutif = {?}",
+                                  $gp);
                 if (!($aid = $res->fetchOneAssoc())) {
                     $aid = array();
                 }
index 9bd47f5..036452e 100644 (file)
@@ -104,7 +104,7 @@ class XnetListsModule extends ListsModule
         }
 
         $listes = $this->client->get_lists();
-        $page->assign('listes',$listes);
+        $page->assign('listes', $listes);
 
         $alias  = XDB::iterator(
                 'SELECT  alias,type
@@ -115,6 +115,13 @@ class XnetListsModule extends ListsModule
         $page->assign('alias', $alias);
 
         $page->assign('may_update', may_update());
+
+        if (count($listes) > 0 && !$globals->asso('has_ml')) {
+            XDB::execute("UPDATE  groupex.asso
+                             SET  flags = CONCAT_WS(',', IF(flags = '', NULL, flags), 'has_ml')
+                           WHERE  id = {?}",
+                         $globals->asso('id'));
+        }
     }
 
     function handler_create(&$page)
@@ -181,6 +188,12 @@ class XnetListsModule extends ListsModule
                                     VALUES ({?}, {?})', XDB::insertId(),
                                    $red . $mdir . '@listes.polytechnique.org');
         }
+
+        XDB::execute("UPDATE  groupex.asso
+                         SET  flags = CONCAT_WS(',', IF(flags = '', NULL, flags), 'has_ml')
+                       WHERE  id = {?}",
+                     $globals->asso('id'));
+
         pl_redirect('lists/admin/'.$liste);
     }
 
index d462aa5..94e8a22 100644 (file)
@@ -34,6 +34,7 @@ Le groupe {$asso.nom} compte {$nb_tot} membres&nbsp;:
       Ajouter un membre
     </a>
   </li>
+  {if $asso.has_ml}
   <li>
     <a href="{$platal->ns}admin/annuaire">
       {icon name=wand title="Synchroniser"} 
@@ -41,6 +42,7 @@ Le groupe {$asso.nom} compte {$nb_tot} membres&nbsp;:
     </a>
   </li>
   {/if}
+  {/if}
   <li>
     <a href="{$platal->ns}annuaire/csv/{$asso.diminutif}.csv">
       {icon name=page_excel title="Fichier Excel"} 
diff --git a/upgrade/0.10.1/01_groupex.sql b/upgrade/0.10.1/01_groupex.sql
new file mode 100644 (file)
index 0000000..e52291e
--- /dev/null
@@ -0,0 +1,3 @@
+ALTER TABLE groupex.asso CHANGE COLUMN flags flags SET('wiki_desc', 'notif_unsub', 'has_ml') NOT NULL;
+
+-- vim:set syntax=mysql: