X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Fmarketing.php;h=5086e9613e32af3d29de98d26f09038d0145866d;hb=6cce7840e69bc0b6647e1bc5ea3437a925cd63a0;hp=e6d3affc1394d12d677733ed868b32f36d4d67e9;hpb=c4f03937349bddfad25990239a825f8161615260;p=platal.git diff --git a/modules/marketing.php b/modules/marketing.php index e6d3aff..5086e96 100644 --- a/modules/marketing.php +++ b/modules/marketing.php @@ -24,15 +24,15 @@ class MarketingModule extends PLModule function handlers() { return array( - 'marketing' => $this->make_hook('marketing', AUTH_MDP, 'admin'), - 'marketing/promo' => $this->make_hook('promo', AUTH_MDP, 'admin'), - 'marketing/relance' => $this->make_hook('relance', AUTH_MDP, 'admin'), - 'marketing/this_week' => $this->make_hook('week', AUTH_MDP, 'admin'), - 'marketing/volontaire' => $this->make_hook('volontaire', AUTH_MDP, 'admin'), - - 'marketing/private' => $this->make_hook('private', AUTH_MDP, 'admin'), - 'marketing/public' => $this->make_hook('public', AUTH_COOKIE), - 'marketing/broken' => $this->make_hook('broken', AUTH_COOKIE), + 'marketing' => $this->make_hook('marketing', AUTH_MDP, 'admin'), + 'marketing/promo' => $this->make_hook('promo', AUTH_MDP, 'admin'), + 'marketing/relance' => $this->make_hook('relance', AUTH_MDP, 'admin'), + 'marketing/this_week' => $this->make_hook('week', AUTH_MDP, 'admin'), + 'marketing/volontaire' => $this->make_hook('volontaire', AUTH_MDP, 'admin'), + + 'marketing/private' => $this->make_hook('private', AUTH_MDP, 'admin'), + 'marketing/public' => $this->make_hook('public', AUTH_COOKIE, 'user'), + 'marketing/broken' => $this->make_hook('broken', AUTH_COOKIE, 'user'), ); } @@ -41,25 +41,37 @@ class MarketingModule extends PLModule $page->changeTpl('marketing/index.tpl'); $page->setTitle('Marketing'); - $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()))); + $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 UserFilter(new PFC_And(new UFC_Registered(false, '>=', strtotime('1 week ago')), new PFC_Not(new UFC_Dead()))); + $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(*) FROM register_pending'); $registrations = array( @@ -263,7 +275,7 @@ class MarketingModule extends PLModule $uf = new UserFilter(new PFC_And(new UFC_Promo('=', UserFilter::DISPLAY, $promo), new PFC_Not(new UFC_Registered()), new PFC_Not(new UFC_Dead())), - array(new UFO_Name(Profile::LASTNAME), new UFO_Name(Profile::FIRSTNAME))); + array(new UFO_Name())); $users = $uf->getUsers(); $page->assign('nonins', $users); }