Displays more statistics about marketings (Closes #671).
authorStéphane Jacob <sj@m4x.org>
Mon, 22 Jun 2009 20:29:51 +0000 (22:29 +0200)
committerStéphane Jacob <sj@m4x.org>
Sat, 27 Jun 2009 11:26:00 +0000 (13:26 +0200)
modules/marketing.php
templates/marketing/index.tpl

index 45a3fd9..baa5eaa 100644 (file)
@@ -42,38 +42,55 @@ class MarketingModule extends PLModule
 
         $page->setTitle('Marketing');
 
-        // Quelques statistiques
-
-        $res   = XDB::query(
-                  "SELECT COUNT(*) AS vivants,
-                          COUNT(NULLIF(perms='admin' OR perms='user', 0)) AS inscrits,
-                          100*COUNT(NULLIF(perms='admin' OR perms='user', 0))/COUNT(*) AS ins_rate,
-                          COUNT(NULLIF(promo >= 1972, 0)) AS vivants72,
-                          COUNT(NULLIF(promo >= 1972 AND (perms='admin' OR perms='user'), 0)) AS inscrits72,
-                          100 * COUNT(NULLIF(promo >= 1972 AND (perms='admin' OR perms='user'), 0)) /
-                              COUNT(NULLIF(promo >= 1972, 0)) AS ins72_rate,
-                          COUNT(NULLIF(FIND_IN_SET('femme', flags), 0)) AS vivantes,
-                          COUNT(NULLIF(FIND_IN_SET('femme', flags) AND (perms='admin' OR perms='user'), 0)) AS inscrites,
-                          100 * COUNT(NULLIF(FIND_IN_SET('femme', flags) AND (perms='admin' OR perms='user'), 0)) /
-                              COUNT(NULLIF(FIND_IN_SET('femme', flags), 0)) AS inse_rate
-                     FROM auth_user_md5
-                    WHERE deces = 0");
+        // Some statistics
+        $res = XDB::query(
+                "SELECT  COUNT(*) AS vivants,
+                         COUNT(NULLIF(perms='admin' OR perms='user', 0)) AS inscrits,
+                         100*COUNT(NULLIF(perms='admin' OR perms='user', 0))/COUNT(*) AS ins_rate,
+                         COUNT(NULLIF(promo >= 1972, 0)) AS vivants72,
+                         COUNT(NULLIF(promo >= 1972 AND (perms='admin' OR perms='user'), 0)) AS inscrits72,
+                         100 * COUNT(NULLIF(promo >= 1972 AND (perms='admin' OR perms='user'), 0)) /
+                             COUNT(NULLIF(promo >= 1972, 0)) AS ins72_rate,
+                         COUNT(NULLIF(FIND_IN_SET('femme', flags), 0)) AS vivantes,
+                         COUNT(NULLIF(FIND_IN_SET('femme', flags) AND (perms='admin' OR perms='user'), 0)) AS inscrites,
+                         100 * COUNT(NULLIF(FIND_IN_SET('femme', flags) AND (perms='admin' OR perms='user'), 0)) /
+                             COUNT(NULLIF(FIND_IN_SET('femme', flags), 0)) AS inse_rate
+                   FROM  auth_user_md5
+                  WHERE  deces = 0");
         $stats = $res->fetchOneAssoc();
         $page->assign('stats', $stats);
 
-        $res   = XDB::query("SELECT count(*) FROM auth_user_md5 WHERE date_ins > ".
-                                      date('Ymd000000', strtotime('1 week ago')));
+        $res = XDB::query('SELECT  COUNT(*)
+                             FROM  auth_user_md5
+                            WHERE  date_ins > ' . date('Ymd000000', strtotime('1 week ago')));
         $page->assign('nbInsSem', $res->fetchOneCell());
 
-        $res = XDB::query("SELECT count(*) FROM register_pending WHERE hash != 'INSCRIT'");
+        $res = XDB::query("SELECT  COUNT(*)
+                             FROM  register_pending
+                            WHERE  hash != 'INSCRIT'");
         $page->assign('nbInsEnCours', $res->fetchOneCell());
 
-        $res = XDB::query("SELECT count(*) FROM register_marketing");
-        $page->assign('nbInsMarket', $res->fetchOneCell());
-
-        $res = XDB::query("SELECT count(*) FROM register_mstats
-                                      WHERE TO_DAYS(NOW()) - TO_DAYS(success) <= 7");
-        $page->assign('nbInsMarkOK', $res->fetchOneCell());
+        $res = XDB::query('SELECT  COUNT(*) AS count
+                             FROM  register_marketing
+                         GROUP BY  sender = 0');
+        $nbInsMarketNo = $res->fetchAllAssoc();
+        $res = XDB::query('SELECT  COUNT(*)
+                             FROM  register_marketing
+                            WHERE  TO_DAYS(NOW()) - TO_DAYS(last) <= 7');
+        $page->assign('nbInsMarketNoPerso', $nbInsMarketNo[0]['count']);
+        $page->assign('nbInsMarketNoXorg', $nbInsMarketNo[1]['count']);
+        $page->assign('nbInsMarketNoWeek', $res->fetchOneCell());
+
+        $res = XDB::query('SELECT  COUNT(*) AS count
+                             FROM  register_mstats
+                         GROUP BY  sender = 0');
+        $nbInsMarketOk = $res->fetchAllAssoc();
+        $res = XDB::query('SELECT  COUNT(*)
+                             FROM  register_mstats
+                            WHERE  TO_DAYS(NOW()) - TO_DAYS(success) <= 7');
+        $page->assign('nbInsMarketOkPerso', $nbInsMarketOk[0]['count']);
+        $page->assign('nbInsMarketOkXorg', $nbInsMarketOk[1]['count']);
+        $page->assign('nbInsMarketOkWeek', $res->fetchOneCell());
     }
 
     function handler_private(&$page, $hruid = null,
index 1baaca4..912a581 100644 (file)
@@ -60,9 +60,43 @@ Soit un pourcentage d'inscrites de&nbsp;: {$stats.inse_rate} % <br />
 
 <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} <br />
-Nombre d'envois marketing effectués n'ayant pas abouti&nbsp;: {$nbInsMarket}<br />
-Nombre d'envois marketing ayant abouti cette semaine&nbsp;: {$nbInsMarkOK}
+Nombre d'<a href="marketing/relance">inscriptions en cours</a> (2ème phase non terminée)&nbsp;: {$nbInsEnCours}
 </p>
 
+<table class="bicol">
+  <tr>
+    <th colspan="4">Marketings</th>
+  </tr>
+  <tr>
+    <td>&nbsp;</td>
+    <td class="titre">Abouti</td>
+    <td class="titre">Non abouti</td>
+    <td class="titre">Total</td>
+  </tr>
+  <tr>
+    <td>Personnel</td>
+    <td>{$nbInsMarketOkPerso}</td>
+    <td>{$nbInsMarketNoPerso}</td>
+    <td>{$nbInsMarketOkPerso+$nbInsMarketNoPerso}</td>
+  </tr>
+  <tr>
+    <td>Par Polytechnique.org</td>
+    <td>{$nbInsMarketOkXorg}</td>
+    <td>{$nbInsMarketNoXorg}</td>
+    <td>{$nbInsMarketOkXorg+$nbInsMarketNoXorg}</td>
+  </tr>
+  <tr>
+    <td>Cette semaine</td>
+    <td>{$nbInsMarketOkWeek}</td>
+    <td>{$nbInsMarketNoWeek}</td>
+    <td>{$nbInsMarketOkWeek+$nbInsMarketNoWeek}</td>
+  </tr>
+  <tr>
+    <td class="titre">Total</td>
+    <td>{$nbInsMarketOkPerso+$nbInsMarketOkXorg}</td>
+    <td>{$nbInsMarketNoPerso+$nbInsMarketNoXorg}</td>
+    <td>{$nbInsMarketOkPerso+$nbInsMarketOkXorg+$nbInsMarketNoPerso+$nbInsMarketNoXorg}</td>
+  </tr>
+</table>
+
 {* vim:set et sw=2 sts=2 sws=2 enc=utf-8: *}