Brings statistics back to life (Closes #1114).
authorStéphane Jacob <sj@m4x.org>
Fri, 16 Jul 2010 18:43:42 +0000 (20:43 +0200)
committerStéphane Jacob <sj@m4x.org>
Fri, 16 Jul 2010 18:43:42 +0000 (20:43 +0200)
Signed-off-by: Stéphane Jacob <sj@m4x.org>
modules/marketing.php
templates/marketing/index.tpl

index 5b35bb8..aad7164 100644 (file)
@@ -39,9 +39,62 @@ class MarketingModule extends PLModule
     function handler_marketing(&$page)
     {
         $page->changeTpl('marketing/index.tpl');
-
         $page->setTitle('Marketing');
-        $page->trigWarning("Les statistiques sont momentanéement désactivées");
+
+        $alive = new UserFilter(new PFC_Not(new UFC_Dead()));
+        $registered = new UserFilter(new PFC_And(new UFC_Registered(), new PFC_Not(new UFC_Dead())));
+        $alive72 = new UserFilter(new PFC_And(new UFC_Promo('>=', UserFilter::GRADE_ING, 1972), new PFC_Not(new UFC_Dead())));
+        $registered72 = new UserFilter(new PFC_And(new UFC_Registered(), new UFC_Promo('>=', UserFilter::GRADE_ING, 1972), new PFC_Not(new UFC_Dead())));
+        $aliveWomen = new UserFilter(new PFC_And(new UFC_Sex(User::GENDER_FEMALE) , new PFC_Not(new UFC_Dead())));
+        $registeredWomen = new UserFilter(new PFC_And(new UFC_Registered(), new UFC_Sex(User::GENDER_FEMALE), new PFC_Not(new UFC_Dead())));
+        $statistics = array(
+            'alive'           => $alive->getTotalCount(),
+            'registered'      => $registered->getTotalCount(),
+            'alive72'         => $alive72->getTotalCount(),
+            'registered72'    => $registered72->getTotalCount(),
+            'womenAlive'      => $aliveWomen->getTotalCount(),
+            'womenRegistered' => $registeredWomen->getTotalCount(),
+        );
+        $statistics['registeredRate']      = $statistics['registered'] / $statistics['alive'] * 100;
+        $statistics['registeredRate72']    = $statistics['registered72'] / $statistics['alive72'] * 100;
+        $statistics['womenRegisteredRate'] = $statistics['womenRegistered'] / $statistics['womenAlive'] * 100;
+
+        $registeredWeek = new UserFilter(new PFC_And(new UFC_Registered(false, '>=', strtotime('1 week ago')), new PFC_Not(new UFC_Dead())));
+        $registrationPending = XDB::fetchOneCell('SELECT  COUNT(*)
+                                                    FROM  register_pending');
+        $registrations = array(
+            'week'    => $registeredWeek->getTotalCount(),
+            'pending' => $registrationPending,
+        );
+
+        $ok = XDB::fetchOneCell('SELECT  COUNT(*)
+                                   FROM  register_mstats
+                                  WHERE  success != \'0000-00-00\'');
+        $okWeek = XDB::fetchOneCell('SELECT  COUNT(*)
+                                       FROM  register_mstats
+                                      WHERE  success >= {?}', strtotime('1 week ago'));
+        $res = XDB::fetchAllAssoc('SELECT  type, COUNT(*) as count
+                                     FROM  register_marketing
+                                 GROUP BY  type');
+        $no = array();
+        foreach ($res as $value) {
+            $no[$value['type']] = $value['count'];
+        }
+        $no['week'] = XDB::fetchOneCell('SELECT  COUNT(*)
+                                           FROM  register_marketing
+                                          WHERE  last >= {?}', strtotime('1 week ago'));
+        $marketings = array(
+            'ok'      => $ok,
+            'okWeek'  => $okWeek,
+            'noPerso' => (isset($no['user']) ? $no['user'] : 0),
+            'noXorg'  => (isset($no['staff']) ? $no['staff'] : 0),
+            'noAX'    => (isset($no['ax']) ? $no['ax'] : 0),
+            'noWeek'  => $no['week'],
+        );
+
+        $page->assign('statistics', $statistics);
+        $page->assign('registrations', $registrations);
+        $page->assign('marketings', $marketings);
     }
 
     function handler_private(&$page, $hruid = null,
index 1694238..c5d27aa 100644 (file)
 <br />
 
 <p>
-Nombre d'X vivants d'après notre base de données&nbsp;: {$stats.vivants}<br />
-Nombre d'X vivants inscrits à Polytechnique.org&nbsp;: {$stats.inscrits}<br />
-Soit un pourcentage d'inscrits de&nbsp;: {$stats.ins_rate} %<br />
+nombre d'X vivants d'après notre base de données&nbsp;: {$statistics.alive}<br />
+nombre d'X vivants inscrits à Polytechnique.org&nbsp;: {$statistics.registered}<br />
+Soit un pourcentage d'inscrits de&nbsp;: {$statistics.registeredRate} %<br />
 </p>
 
 <p>
 Parmi ceux-ci&nbsp;:<br />
-Nombre d'X vivants depuis 1972 d'après notre base de données&nbsp;: {$stats.vivants72}<br />
-Nombre d'X vivants depuis 1972 inscrits à Polytechnique.org&nbsp;: {$stats.inscrits72}<br />
-Soit un pourcentage d'inscrits de&nbsp;: {$stats.ins72_rate} %<br />
+nombre d'X vivants depuis 1972 d'après notre base de données&nbsp;: {$statistics.alive72}<br />
+nombre d'X vivants depuis 1972 inscrits à Polytechnique.org&nbsp;: {$statistics.registered72}<br />
+Soit un pourcentage d'inscrits de&nbsp;: {$statistics.registeredRate72} %<br />
 </p>
 
 <p>
-Nombre de Polytechniciennes vivantes&nbsp;: {$stats.vivantes}<br />
-Nombre de Polytechniciennes vivantes et inscrites&nbsp;: {$stats.inscrites}<br />
-Soit un pourcentage d'inscrites de&nbsp;: {$stats.inse_rate} %<br />
+nombre de Polytechniciennes vivantes&nbsp;: {$statistics.womenAlive}<br />
+nombre de Polytechniciennes vivantes et inscrites&nbsp;: {$statistics.womenRegistered}<br />
+Soit un pourcentage d'inscrites de&nbsp;: {$statistics.womenRegisteredRate} %<br />
 </p>
 
 <p>
-Nombre d'<a href="marketing/this_week">inscrits ces 7 derniers jours</a>&nbsp;: {$nbInsSem}<br />
-Nombre d'<a href="marketing/relance">inscriptions en cours</a> (2ème phase non terminée)&nbsp;: {$nbInsEnCours}
+nombre d'<a href="marketing/this_week">inscrits ces 7 derniers jours</a>&nbsp;: {$registrations.week}<br />
+nombre d'<a href="marketing/relance">inscriptions en cours</a> (2ème phase non terminée)&nbsp;: {$registrations.pending}
 </p>
 
 <table class="bicol">
@@ -69,34 +69,37 @@ Nombre d'<a href="marketing/relance">inscriptions en cours</a> (2ème phase non
   </tr>
   <tr>
     <td>&nbsp;</td>
-    <td class="titre">Abouti</td>
     <td class="titre">Non abouti</td>
+    <td class="titre">Abouti</td>
     <td class="titre">Total</td>
   </tr>
   <tr>
     <td>Personnel</td>
-    <td>{$nbInsMarketOkPerso}</td>
-    <td>{$nbInsMarketNoPerso}</td>
-    <td>{$nbInsMarketOkPerso+$nbInsMarketNoPerso}</td>
+    <td>{$marketings.noPerso}</td>
+    <td rowspan="3" style="vertical-align: middle">{$marketings.ok}</td>
+    <td rowspan="3" style="vertical-align: middle">{$marketings.ok+$marketings.noPerso+$marketings.noXorg+$marketings.noAX}</td>
   </tr>
   <tr>
     <td>Par Polytechnique.org</td>
-    <td>{$nbInsMarketOkXorg}</td>
-    <td>{$nbInsMarketNoXorg}</td>
-    <td>{$nbInsMarketOkXorg+$nbInsMarketNoXorg}</td>
+    <td>{$marketings.noXorg}</td>
+  </tr>
+  <tr>
+    <td>Par l'AX</td>
+    <td>{$marketings.noAX}</td>
   </tr>
   <tr>
     <td>Cette semaine</td>
-    <td>{$nbInsMarketOkWeek}</td>
-    <td>{$nbInsMarketNoWeek}</td>
-    <td>{$nbInsMarketOkWeek+$nbInsMarketNoWeek}</td>
+    <td>{$marketings.noWeek}</td>
+    <td>{$marketings.okWeek}</td>
+    <td>{$marketings.okWeek+$marketings.noWeek}</td>
   </tr>
   <tr>
     <td class="titre">Total</td>
-    <td>{$nbInsMarketOkPerso+$nbInsMarketOkXorg}</td>
-    <td>{$nbInsMarketNoPerso+$nbInsMarketNoXorg}</td>
-    <td>{$nbInsMarketOkPerso+$nbInsMarketOkXorg+$nbInsMarketNoPerso+$nbInsMarketNoXorg}</td>
+    <td>{$marketings.noPerso+$marketings.noXorg+$marketings.noAX}</td>
+    <td>{$marketings.ok}</td>
+    <td>{$marketings.ok+$marketings.noPerso+$marketings.noXorg+$marketings.noAX}</td>
   </tr>
 </table>
 
 {* vim:set et sw=2 sts=2 sws=2 enc=utf-8: *}
+