$page->changeTpl('marketing/index.tpl');
$page->setTitle('Marketing');
- $alive = new ProfileFilter(new PFC_Not(new UFC_Dead()));
- $registered = new ProfileFilter(new PFC_And(new UFC_Registered(true), new PFC_Not(new UFC_Dead())));
- $alive72 = new ProfileFilter(new PFC_And(new UFC_Promo('>=', UserFilter::GRADE_ING, 1972), new PFC_Not(new UFC_Dead())));
- $registered72 = new ProfileFilter(new PFC_And(new UFC_Registered(true), new UFC_Promo('>=', UserFilter::GRADE_ING, 1972), new PFC_Not(new UFC_Dead())));
- $aliveWomen = new ProfileFilter(new PFC_And(new UFC_Sex(User::GENDER_FEMALE) , new PFC_Not(new UFC_Dead())));
- $registeredWomen = new ProfileFilter(new PFC_And(new UFC_Registered(true), new UFC_Sex(User::GENDER_FEMALE), new PFC_Not(new UFC_Dead())));
+ $alive = array(
+ 'all' => new ProfileFilter(new PFC_Not(new UFC_Dead())),
+ 'women' => new ProfileFilter(new PFC_And(new UFC_Sex(User::GENDER_FEMALE) , new PFC_Not(new UFC_Dead()))),
+ 'x' => new ProfileFilter(new PFC_And(new PFC_Not(new UFC_Dead()), new UFC_AccountType('x'))),
+ '72' => new ProfileFilter(new PFC_And(new UFC_Promo('>=', UserFilter::GRADE_ING, 1972), new PFC_Not(new UFC_Dead()))),
+ 'master' => new ProfileFilter(new PFC_And(new PFC_Not(new UFC_Dead()), new UFC_AccountType('master'))),
+ 'phd' => new ProfileFilter(new PFC_And(new PFC_Not(new UFC_Dead()), new UFC_AccountType('phd')))
+ );
+ $registered = array(
+ 'all' => new ProfileFilter(new PFC_And(new UFC_Registered(true), new PFC_Not(new UFC_Dead()))),
+ 'women' => new ProfileFilter(new PFC_And(new UFC_Registered(true), new UFC_Sex(User::GENDER_FEMALE), new PFC_Not(new UFC_Dead()))),
+ 'x' => new ProfileFilter(new PFC_And(new UFC_Registered(true), new PFC_Not(new UFC_Dead(), new UFC_AccountType('x')))),
+ '72' => new ProfileFilter(new PFC_And(new UFC_Registered(true), new UFC_Promo('>=', UserFilter::GRADE_ING, 1972), new PFC_Not(new UFC_Dead()))),
+ 'master' => new ProfileFilter(new PFC_And(new UFC_Registered(true), new PFC_Not(new UFC_Dead()), new UFC_AccountType('master'))),
+ 'phd' => new ProfileFilter(new PFC_And(new UFC_Registered(true), new PFC_Not(new UFC_Dead()), new UFC_AccountType('phd')))
+ );
$statistics = array(
- 'alive' => $alive->getTotalCount(),
- 'registered' => $registered->getTotalCount(),
- 'alive72' => $alive72->getTotalCount(),
- 'registered72' => $registered72->getTotalCount(),
- 'womenAlive' => $aliveWomen->getTotalCount(),
- 'womenRegistered' => $registeredWomen->getTotalCount(),
+ 'all' => array('description' => "Étudiants et anciens de l'X"),
+ 'women' => array('description' => "Étudiantes et anciennes de l'X"),
+ 'x' => array('description' => 'X'),
+ '72' => array('description' => 'X vivants depuis la promo 1972'),
+ 'master' => array('description' => "Masters de l'X"),
+ 'phd' => array('description' => "Docteurs de l'X")
);
- $statistics['registeredRate'] = $statistics['registered'] / $statistics['alive'] * 100;
- $statistics['registeredRate72'] = $statistics['registered72'] / $statistics['alive72'] * 100;
- $statistics['womenRegisteredRate'] = $statistics['womenRegistered'] / $statistics['womenAlive'] * 100;
+ foreach ($statistics as $key => &$data) {
+ $data['alive'] = $alive[$key]->getTotalCount();
+ $data['registered'] = $registered[$key]->getTotalCount();
+ $data['rate'] = round($data['registered'] / $data['alive'] * 100, 2);
+ }
$registeredWeek = new ProfileFilter(new PFC_And(new UFC_Registered(true, '>=', strtotime('1 week ago')), new PFC_Not(new UFC_Dead())));
$registrationPending = XDB::fetchOneCell('SELECT COUNT(*)
<br />
-<p>
-nombre d'étudiants et anciens de l'X vivants d'après notre base de données : {$statistics.alive}<br />
-nombre d'étudiants et anciens de l'X vivants inscrits à Polytechnique.org : {$statistics.registered}<br />
-Soit un pourcentage d'inscrits de : {$statistics.registeredRate} %<br />
-</p>
-
-<p>
-Parmi ceux-ci :<br />
-nombre d'X vivants depuis la promo 1972 d'après notre base de données : {$statistics.alive72}<br />
-nombre d'X vivants depuis la promo 1972 inscrits à Polytechnique.org : {$statistics.registered72}<br />
-Soit un pourcentage d'inscrits de : {$statistics.registeredRate72} %<br />
-</p>
-
-<p>
-nombre de étudiantes et anciennes de l'X vivantes : {$statistics.womenAlive}<br />
-nombre de étudiantes et anciennes de l'X vivantes et inscrites : {$statistics.womenRegistered}<br />
-Soit un pourcentage d'inscrites de : {$statistics.womenRegisteredRate} %<br />
-</p>
+<table class="bicol">
+ <tr>
+ <th colspan="4">Statistiques</th>
+ </tr>
+ <tr>
+ <td class="titre"></td>
+ <td style="text-align: right" class="titre">Vivants</td>
+ <td style="text-align: right" class="titre">Inscrits</td>
+ <td style="text-align: right" class="titre">Pourcentage</td>
+ </tr>
+ {foreach from=$statistics item=data}
+ <tr>
+ <td>{$data.description}</td>
+ <td style="text-align: right">{$data.alive}</td>
+ <td style="text-align: right">{$data.registered}</td>
+ <td style="text-align: right">{$data.rate}</td>
+ </tr>
+ {/foreach}
+</table>
<p>
nombre d'<a href="marketing/this_week">inscrits ces 7 derniers jours</a> : {$registrations.week}<br />
</tr>
<tr>
<td> </td>
- <td class="titre">Non abouti</td>
- <td class="titre">Abouti</td>
- <td class="titre">Total</td>
+ <td style="text-align: right" class="titre">Non abouti</td>
+ <td style="text-align: right" class="titre">Abouti</td>
+ <td style="text-align: right" class="titre">Total</td>
</tr>
<tr>
<td>Personnel</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>
+ <td style="text-align: right">{$marketings.noPerso}</td>
+ <td rowspan="3" style="vertical-align: middle; text-align: right">{$marketings.ok}</td>
+ <td rowspan="3" style="vertical-align: middle; text-align: right">{$marketings.ok+$marketings.noPerso+$marketings.noXorg+$marketings.noAX}</td>
</tr>
<tr>
<td>Par Polytechnique.org</td>
- <td>{$marketings.noXorg}</td>
+ <td style="text-align: right">{$marketings.noXorg}</td>
</tr>
<tr>
<td>Par l'AX</td>
- <td>{$marketings.noAX}</td>
+ <td style="text-align: right">{$marketings.noAX}</td>
</tr>
<tr>
<td>Cette semaine</td>
- <td>{$marketings.noWeek}</td>
- <td>{$marketings.okWeek}</td>
- <td>{$marketings.okWeek+$marketings.noWeek}</td>
+ <td style="text-align: right">{$marketings.noWeek}</td>
+ <td style="text-align: right">{$marketings.okWeek}</td>
+ <td style="text-align: right">{$marketings.okWeek+$marketings.noWeek}</td>
</tr>
<tr>
<td class="titre">Total</td>
- <td>{$marketings.noPerso+$marketings.noXorg+$marketings.noAX}</td>
- <td>{$marketings.ok}</td>
- <td>{$marketings.ok+$marketings.noPerso+$marketings.noXorg+$marketings.noAX}</td>
+ <td style="text-align: right">{$marketings.noPerso+$marketings.noXorg+$marketings.noAX}</td>
+ <td style="text-align: right">{$marketings.ok}</td>
+ <td style="text-align: right">{$marketings.ok+$marketings.noPerso+$marketings.noXorg+$marketings.noAX}</td>
</tr>
</table>