From 20eca0a987511ea8cfdc57c2e4cb7d00e23002d8 Mon Sep 17 00:00:00 2001 From: =?utf8?q?St=C3=A9phane=20Jacob?= Date: Fri, 16 Jul 2010 20:43:42 +0200 Subject: [PATCH] Brings statistics back to life (Closes #1114). MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Stéphane Jacob --- modules/marketing.php | 57 +++++++++++++++++++++++++++++++++++++++++-- templates/marketing/index.tpl | 51 ++++++++++++++++++++------------------ 2 files changed, 82 insertions(+), 26 deletions(-) diff --git a/modules/marketing.php b/modules/marketing.php index 5b35bb8..aad7164 100644 --- a/modules/marketing.php +++ b/modules/marketing.php @@ -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, diff --git a/templates/marketing/index.tpl b/templates/marketing/index.tpl index 1694238..c5d27aa 100644 --- a/templates/marketing/index.tpl +++ b/templates/marketing/index.tpl @@ -40,27 +40,27 @@

-Nombre d'X vivants d'après notre base de données : {$stats.vivants}
-Nombre d'X vivants inscrits à Polytechnique.org : {$stats.inscrits}
-Soit un pourcentage d'inscrits de : {$stats.ins_rate} %
+nombre d'X vivants d'après notre base de données : {$statistics.alive}
+nombre d'X vivants inscrits à Polytechnique.org : {$statistics.registered}
+Soit un pourcentage d'inscrits de : {$statistics.registeredRate} %

Parmi ceux-ci :
-Nombre d'X vivants depuis 1972 d'après notre base de données : {$stats.vivants72}
-Nombre d'X vivants depuis 1972 inscrits à Polytechnique.org : {$stats.inscrits72}
-Soit un pourcentage d'inscrits de : {$stats.ins72_rate} %
+nombre d'X vivants depuis 1972 d'après notre base de données : {$statistics.alive72}
+nombre d'X vivants depuis 1972 inscrits à Polytechnique.org : {$statistics.registered72}
+Soit un pourcentage d'inscrits de : {$statistics.registeredRate72} %

-Nombre de Polytechniciennes vivantes : {$stats.vivantes}
-Nombre de Polytechniciennes vivantes et inscrites : {$stats.inscrites}
-Soit un pourcentage d'inscrites de : {$stats.inse_rate} %
+nombre de Polytechniciennes vivantes : {$statistics.womenAlive}
+nombre de Polytechniciennes vivantes et inscrites : {$statistics.womenRegistered}
+Soit un pourcentage d'inscrites de : {$statistics.womenRegisteredRate} %

-Nombre d'inscrits ces 7 derniers jours : {$nbInsSem}
-Nombre d'inscriptions en cours (2ème phase non terminée) : {$nbInsEnCours} +nombre d'inscrits ces 7 derniers jours : {$registrations.week}
+nombre d'inscriptions en cours (2ème phase non terminée) : {$registrations.pending}

@@ -69,34 +69,37 @@ Nombre d'inscriptions en cours (2ème phase non - + - - - + + + - - - + + + + + - - - + + + - - - + + +
 Abouti Non aboutiAbouti Total
Personnel{$nbInsMarketOkPerso}{$nbInsMarketNoPerso}{$nbInsMarketOkPerso+$nbInsMarketNoPerso}{$marketings.noPerso}{$marketings.ok}{$marketings.ok+$marketings.noPerso+$marketings.noXorg+$marketings.noAX}
Par Polytechnique.org{$nbInsMarketOkXorg}{$nbInsMarketNoXorg}{$nbInsMarketOkXorg+$nbInsMarketNoXorg}{$marketings.noXorg}
Par l'AX{$marketings.noAX}
Cette semaine{$nbInsMarketOkWeek}{$nbInsMarketNoWeek}{$nbInsMarketOkWeek+$nbInsMarketNoWeek}{$marketings.noWeek}{$marketings.okWeek}{$marketings.okWeek+$marketings.noWeek}
Total{$nbInsMarketOkPerso+$nbInsMarketOkXorg}{$nbInsMarketNoPerso+$nbInsMarketNoXorg}{$nbInsMarketOkPerso+$nbInsMarketOkXorg+$nbInsMarketNoPerso+$nbInsMarketNoXorg}{$marketings.noPerso+$marketings.noXorg+$marketings.noAX}{$marketings.ok}{$marketings.ok+$marketings.noPerso+$marketings.noXorg+$marketings.noAX}
{* vim:set et sw=2 sts=2 sws=2 enc=utf-8: *} + -- 2.1.4