Don't use the implicit perms='user' arg for make_*hook.
[platal.git] / modules / stats.php
index a7cc80a..767db42 100644 (file)
@@ -36,11 +36,11 @@ class StatsModule extends PLModule
     function handlers()
     {
         return array(
-            'stats'                 => $this->make_hook('stats',     AUTH_COOKIE),
-            'stats/evolution'       => $this->make_hook('evolution', AUTH_COOKIE),
-            'stats/graph'           => $this->make_hook('graph',     AUTH_COOKIE),
-            'stats/graph/evolution' => $this->make_hook('graph_evo', AUTH_COOKIE),
-            'stats/promos'          => $this->make_hook('promos',    AUTH_COOKIE),
+            'stats'                 => $this->make_hook('stats',     AUTH_COOKIE, 'user'),
+            'stats/evolution'       => $this->make_hook('evolution', AUTH_COOKIE, 'user'),
+            'stats/graph'           => $this->make_hook('graph',     AUTH_COOKIE, 'user'),
+            'stats/graph/evolution' => $this->make_hook('graph_evo', AUTH_COOKIE, 'user'),
+            'stats/promos'          => $this->make_hook('promos',    AUTH_COOKIE, 'user'),
 
             'stats/coupures'        => $this->make_hook('coupures',  AUTH_PUBLIC),
         );
@@ -108,7 +108,7 @@ set size 640/480
 set xdata time
 set timefmt "%d/%m/%y"
 
-set format x "%m/%y"
+set format x "%d/%m\\n%Y"
 set yr [$ymin:$ymax]
 
 set title "Nombre d'inscrits"
@@ -241,6 +241,7 @@ EOF2;
     function handler_promos($page, $required_promo = null)
     {
         $page->changeTpl('stats/nb_by_promo.tpl');
+        $cycles = array('X' => 'Polytechniciens', 'M' => 'Masters', 'D' => 'Docteurs');
 
         $res = XDB::iterRow('SELECT  pd.promo, COUNT(*)
                                FROM  accounts         AS a
@@ -255,10 +256,10 @@ EOF2;
         while (list($promo, $count) = $res->next()) {
             $prefix = substr($promo, 0, 4) . '-';
             $unit = substr($promo, -1);
-            if(!isset($nbpromo[$prefix])) {
-                $nbpromo[$prefix] = array('', '', '', '', '', '', '', '', '', ''); // Empty array containing 10 cells.
+            if(!isset($nbpromo[$cycles[$promo{0}]][$prefix])) {
+                $nbpromo[$cycles[$promo{0}]][$prefix] = array('', '', '', '', '', '', '', '', '', ''); // Empty array containing 10 cells.
             }
-            $nbpromo[$prefix][$unit] = array('promo' => $promo, 'nb' => $count);
+            $nbpromo[$cycles[$promo{0}]][$prefix][$unit] = array('promo' => $promo, 'nb' => $count);
         }
 
         $count = XDB::fetchOneCell('SELECT  COUNT(*)
@@ -267,7 +268,7 @@ EOF2;
                                 INNER JOIN  profiles         AS p  ON (p.pid = ap.pid)
                                 INNER JOIN  profile_display  AS pd ON (pd.pid = ap.pid)
                                      WHERE  a.state = \'active\' AND p.deathdate IS NULL AND pd.promo = \'D (en cours)\'');
-        $nbpromo['D (en cours)'][0] = array('promo' => 'D (en cours)', 'nb' => $count);
+        $nbpromo[$cycles['D']]['D (en cours)'][0] = array('promo' => 'D (en cours)', 'nb' => $count);
 
         $page->assign_by_ref('nbs', $nbpromo);
         $page->assign('promo', $required_promo);