Adds a choice for events order for group animators.
authorAnne Limoges <anne.limoges_git@polytechnique.org>
Tue, 12 Feb 2013 08:12:15 +0000 (09:12 +0100)
committerAnne Limoges <anne.limoges_git@polytechnique.org>
Tue, 12 Feb 2013 08:12:15 +0000 (09:12 +0100)
modules/xnetevents.php
templates/xnetevents/index.tpl

index dfa76b2..feb9d7f 100644 (file)
@@ -144,18 +144,46 @@ class XnetEventsModule extends PLModule
         }
 
         $page->assign('archive', $archive);
-        $evenements = XDB::iterator('SELECT  e.*, LEFT(e.debut, 10) AS first_day, LEFT(e.fin, 10) AS last_day,
-                                             IF(e.deadline_inscription,
-                                                     e.deadline_inscription >= LEFT(NOW(), 10),
-                                                     1) AS inscr_open,
-                                             e.deadline_inscription,
-                                             MAX(ep.nb) IS NOT NULL AS inscrit, MAX(ep.paid) AS paid
-                                       FROM  group_events              AS e
-                                  LEFT JOIN  group_event_participants AS ep ON (ep.eid = e.eid AND ep.uid = {?})
-                                      WHERE  asso_id = {?} AND  archive = {?}
-                                   GROUP BY  e.eid
-                                   ORDER BY  inscr_open DESC, debut DESC',
-                                     S::i('uid'), $globals->asso('id'), $archive ? 1 : 0);
+
+        if (Post::has('order')) {
+            $order = Post::v('order');
+            XDB::execute("UPDATE groups
+                             SET event_order = {?}
+                           WHERE id = {?}",
+                          $order, $globals->asso('id'));
+        } else {
+            $order = XDB::fetchOneCell("SELECT event_order FROM groups
+                                         WHERE id = {?}",
+                                        $globals->asso('id'));
+        }
+        if ($order == 'desc') {
+            $evenements = XDB::iterator('SELECT  e.*, LEFT(e.debut, 10) AS first_day, LEFT(e.fin, 10) AS last_day,
+                                                 IF(e.deadline_inscription,
+                                                         e.deadline_inscription >= LEFT(NOW(), 10),
+                                                         1) AS inscr_open,
+                                                 e.deadline_inscription,
+                                                 MAX(ep.nb) IS NOT NULL AS inscrit, MAX(ep.paid) AS paid
+                                           FROM  group_events              AS e
+                                      LEFT JOIN  group_event_participants AS ep ON (ep.eid = e.eid AND ep.uid = {?})
+                                          WHERE  asso_id = {?} AND  archive = {?}
+                                       GROUP BY  e.eid
+                                       ORDER BY  inscr_open DESC, debut DESC',
+                                         S::i('uid'), $globals->asso('id'), $archive ? 1 : 0);
+        } else {
+            $evenements = XDB::iterator('SELECT  e.*, LEFT(e.debut, 10) AS first_day, LEFT(e.fin, 10) AS last_day,
+                                                 IF(e.deadline_inscription,
+                                                         e.deadline_inscription >= LEFT(NOW(), 10),
+                                                         1) AS inscr_open,
+                                                 e.deadline_inscription,
+                                                 MAX(ep.nb) IS NOT NULL AS inscrit, MAX(ep.paid) AS paid
+                                           FROM  group_events              AS e
+                                      LEFT JOIN  group_event_participants AS ep ON (ep.eid = e.eid AND ep.uid = {?})
+                                          WHERE  asso_id = {?} AND  archive = {?}
+                                       GROUP BY  e.eid
+                                       ORDER BY  inscr_open DESC, debut ASC',
+                                         S::i('uid'), $globals->asso('id'), $archive ? 1 : 0);
+        }
+        $page->assign('order', $order);
 
         $evts = array();
         $undisplayed_events = 0;
index 79e1fe5..380e7b7 100644 (file)
 {*                                                                        *}
 {**************************************************************************}
 
+{if $is_admin}
+<table class='warnings'>
+  <tr>
+    <td class='center'>Choisis l'ordre d'affichage des événements pour ton groupe :</td>
+    <td class='center'>
+      <form method="post" action="{$platal->ns}events">
+        <select name="order" onchange="this.form.submit()">
+          <option value="desc"{if $order eq 'desc'}selected="selected"{/if}>Anti-chronologique</option>
+          <option value="asc"{if $order eq 'asc'}selected="selected"{/if}>Chronologique</option>
+        </select>
+      </form>
+    </td>
+  </tr>
+  <tr><td colspan=2 class='center'>Attention, ton choix s'appliquera à tous les utilisateurs !</td></tr>
+</table>
+<br />
+{/if}
+
 {if !$is_admin}
 <h1>{$asso->nom}&nbsp;: Événements</h1>
 {else}