Changeset 2658


Ignore:
Timestamp:
Apr 19, 2012, 5:51:57 AM (8 years ago)
Author:
komodo
Message:

Corrige problemes avec les nouveaux groupes et gère affichage différent de synthèse, barre d'activité et graphe pour période 10 premiers mois de mandature

Location:
cpc/branches/senat/project
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • cpc/branches/senat/project/apps/frontend/modules/parlementaire/actions/actions.class.php

    r2623 r2658  
    239239      ->andWhere('p.fin_mandat IS NULL')
    240240      ->andWhere('o.type = ?', 'groupe')
    241       ->andWhere('o.nom = ?', $nom);
    242     $query->orderBy("imp DESC, p.nom_de_famille ASC");
     241      ->andWhere('o.nom = ?', $nom)
     242      ->orderBy('imp DESC, p.nom_de_famille ASC');
    243243    $this->parlementaires = array();
    244244    $this->total = 0;
     
    249249      else $this->parlementaires[$imp] = array($senateur);
    250250    }
     251    $query = Doctrine::getTable('Parlementaire')->createQuery('p')
     252      ->select('p.*')
     253      ->where('p.groupe_acronyme = ?', strtoupper($acro))
     254      ->andWhere('p.fin_mandat IS NOT NULL')
     255      ->andWhere('p.fin_mandat > p.debut_mandat')
     256      ->orderBy('p.nom_de_famille ASC');
     257    foreach ($query->execute() as $senateur) {
     258      $this->total++;
     259      if (isset($this->parlementaires[0])) $this->parlementaires[0][] = $senateur;
     260      else $this->parlementaires[0] = array($senateur);
     261    }
     262
    251263    $query2 = Doctrine::getTable('Organisme')->createQuery('o');
    252264    $query2->where('o.nom = ?', $nom);
     
    361373      $qp->whereIn('id', $ids);
    362374    }
     375    if (myTools::isDebutMandature())
     376      $enddate = myTools::getDebutMandature();
     377    else $enddate = date('Y-m-d', time()-round(60*60*24*3650/12));
    363378    $qp->andWhere('fin_mandat IS NULL')
    364       ->andWhere('debut_mandat < ?', date('Y-m-d', time()-round(60*60*24*3650/12)))
     379      ->andWhere('debut_mandat < ?', $enddate)
    365380      ->orderBy('nom_de_famille');
    366381    $parlementaires = $qp->fetchArray();
  • cpc/branches/senat/project/apps/frontend/modules/parlementaire/templates/_table.php

    r2472 r2658  
    55    $colonnes = 3;
    66  if (isset($imp)) {
    7     $fonction = $senateurs[0]->fonction;
    8     foreach ($senateurs as $senateur) if ($senateur->sexe === "H") {
    9       $fonction = $senateur->fonction;
    10        break;
     7    if (isset($senateurs[0]->fonction)) {
     8      $fonction = $senateurs[0]->fonction;
     9      foreach ($senateurs as $senateur) if ($senateur->sexe === "H") {
     10        $fonction = $senateur->fonction;
     11        break;
     12      }
     13    } else {
     14      $pluriel = (count($senateurs) > 1 ? "s" : "");
     15      $fonction = "Ancien sénateur";
    1116    }
    1217    echo '<h3 class="aligncenter">'.ucfirst(preg_replace('/d(u|e)s /', 'd\\1 ', (count($senateurs) > 1 ? preg_replace('/(,)? /', 's\\1 ', (preg_match('/(spécial|général)/i', $fonction) ? preg_replace('/al$/', 'aux', $fonction) : $fonction)) : $fonction))).(count($senateurs) > 1 && !preg_match('/(spécial|général|droit|bureau)$/i', $fonction) ? 's' : '').'</h3>';
  • cpc/branches/senat/project/apps/frontend/modules/parlementaire/templates/_top.php

    r2376 r2658  
    4646  return ;
    4747if (!$parlementaire->fin_mandat || $parlementaire->fin_mandat < $parlementaire->debut_mandat) {
    48   $mois = floor((time() - strtotime($parlementaire->debut_mandat) ) / (60*60*24*30));
     48  if (myTools::isDebutMandature() && strtotime(myTools::getDebutMandature()) > strtotime($parlementaire->debut_mandat)) {
     49    $stdate = myTools::getDebutMandature();
     50    $headstr = "premier";
     51    if (strtotime(myTools::getDebutMandature()) - strtotime($parlementaire->debut_mandat) > 2160000)
     52      $headstr = "dernier";
     53  }
     54  else $stdate = $parlementaire->debut_mandat;
     55  $mois = floor((time() - strtotime($stdate) ) / (60*60*24*30));
    4956  if($mois < 12) {
    5057    echo '<h3>Activité <small>(';
    51     if ($mois <= 1) echo 'premier';
     58    if ($mois <= 1) echo $headstr;
    5259    else
    53       echo $mois.' premiers';
     60      echo $mois.' '.$headstr.'s';
    5461    echo ' mois de mandat)</small> :</h3>';
    5562    $rank = 0;
  • cpc/branches/senat/project/apps/frontend/modules/parlementaire/templates/topSuccess.php

    r2623 r2658  
    11<?php foreach ($tops as $t) if (!isset($date)) $date = $t[0]['updated_at']; ?>
    2 <h1>Synthèse générale de l'activité parlementaire<br/><small>sur les 12 derniers mois</small></h1>
    3 <h2 class="aligncenter"><small>(dernière <a href="<?php echo url_for('@faq'); ?>#post_2">mise-à-jour</a> le <?php echo preg_replace('/20(\d+)-(\d+)-(\d+) (\d+):(\d+):\d+/', '$3/$2/$1 à $4H$5', $date); ?>)</h1>
    4 <h2>Activité de tous les sénateurs ayant au moins 10 mois de mandat :</h2>
     2<h1>Synthèse générale de l'activité parlementaire<br/><small><?php if (myTools::isDebutMandature()) echo "depuis le début de la mandature (".myTools::displayDate(myTools::getDebutMandature()).")"; else echo "sur les 12 derniers mois"; ?></small></h1>
     3<h2 class="aligncenter"><small>(dernière <a href="<?php echo url_for('@faq'); ?>#post_2">mise-à-jour</a> le <?php echo preg_replace('/20(\d+)-(\d+)-(\d+) (\d+):(\d+):\d+/', '$3/$2/$1 à $4H$5', $date); ?>)</h2>
     4<h2>Activité de tous les sénateurs <?php if (myTools::isDebutMandature()) echo "en activité"; else echo "ayant au moins 10 mois de mandat"; ?> :</h2>
    55<?php
    66$sf_response->setTitle('Synthèse générale des sénateurs');
     
    9292<p class="aligncenter"><small>Les chiffres en couleur indiquent que le sénateur se trouve pour le critère indiqué parmi <span style="color:green">les 100 premiers</span> ou <span style="color:red">les 100 derniers</span>.</small></p>
    9393</div></div>
    94 <h2 id="groupes">Activité moyenne d'un senateur de chaque groupe politique au cours des 12 derniers mois :</h2>
     94<h2 id="groupes">Activité moyenne d'un sénateur de chaque groupe politique <?php if (myTools::isDebutMandature()) echo "depuis le début de la mandature"; else echo "au cours des 12 derniers mois"; ?> :</h2>
    9595<div class="liste_senateurs_top">
    9696<div class="synthese">
     
    139139</div>
    140140<div class="synthese_div">
    141 <h2>Répartition de l'activité des sénateurs sur les 12 derniers mois par groupe politique :</h2>
     141<h2>Répartition de l'activité des sénateurs sur <?php if (myTools::isDebutMandature()) echo "le début de la mandature"; else echo "les 12 derniers mois"; ?> par groupe politique :</h2>
    142142<div class="aligncenter"><?php echo include_component('plot', 'newGroupes', array('type' => 'all')); ?></div>
    143143</div>
  • cpc/branches/senat/project/apps/frontend/modules/plot/actions/components.class.php

    r2623 r2658  
    195195    $n = count($this->data['titres']);
    196196    $stats = unserialize(Doctrine::getTable('VariableGlobale')->findOneByChamp('stats_groupes')->value);
     197    if (myTools::isDebutMandature())
     198      $enddate = myTools::getDebutMandature();
     199    else $enddate = date('Y-m-d', time()-60*60*24*365);
    197200    $query = Doctrine_Query::create()
    198201      ->select('p.groupe_acronyme, count(DISTINCT(a.id)) as ct')
    199202      ->from('Parlementaire p, p.ParlementaireAmendements pa, pa.Amendement a')
    200       ->where('a.date > ?', date('Y-m-d', time()-60*60*24*365))
     203      ->where('pa.numero_signataire = ?', 1)
    201204      ->andWhere('p.groupe_acronyme IS NOT NULL')
     205      ->andWhere('a.date > ?', $enddate)
    202206      ->groupBy('p.groupe_acronyme');
    203207    $qamdmts = clone($query);
     
    211215      ->select('p.groupe_acronyme, count(DISTINCT(t.id)) as ct')
    212216      ->from('Parlementaire p, p.ParlementaireTextelois pt, pt.Texteloi t')
    213       ->where('t.date > ?', date('Y-m-d', time()-60*60*24*365))
     217      ->where('t.date > ?', $enddate)
    214218      ->andWhere('pt.importance = 1')
    215219      ->andWhere('t.type LIKE ?', "proposition%")
     
    217221      ->groupBy('p.groupe_acronyme')
    218222      ->fetchArray();
    219     foreach ($this->data['groupes'] as $groupe => $arr) if ($stats[$groupe]) {
     223    foreach ($this->data['groupes'] as $groupe => $arr) if (isset($stats[$groupe])) {
    220224      $this->data['groupes'][$groupe][] = $stats[$groupe]['groupe']['nb'];
    221225      if ($this->type === "all") {
     
    225229      } else $this->data['groupes'][$groupe][] = $stats[$groupe]['hemicycle_interventions']['somme']+$stats[$groupe]['commission_interventions']['somme'];
    226230    }
    227     foreach ($amdmts as $amdt) if (isset($this->data['groupes'][$amdt['groupe_acronyme']]))
     231    foreach ($amdmts as $amdt) if ($amdt['groupe_acronyme'] != "" && isset($this->data['groupes'][$amdt['groupe_acronyme']]))
    228232      $this->data['groupes'][$amdt['groupe_acronyme']][] = $amdt['ct'];
    229233    if ($this->type === "all")
    230       foreach ($amdmts2 as $amdt) if (isset($this->data['groupes'][$amdt['groupe_acronyme']]))
     234      foreach ($amdmts2 as $amdt) if ($amdt['groupe_acronyme'] != "" && isset($this->data['groupes'][$amdt['groupe_acronyme']]))
    231235        $this->data['groupes'][$amdt['groupe_acronyme']][] = $amdt['ct'];
    232     foreach ($props as $pro) if (isset($this->data['groupes'][$pro['groupe_acronyme']]))
     236    foreach ($props as $pro) if ($pro['groupe_acronyme'] != "" && isset($this->data['groupes'][$pro['groupe_acronyme']]))
    233237      $this->data['groupes'][$pro['groupe_acronyme']][] = $pro['ct'];
    234     foreach ($this->data['groupes'] as $groupe => $arr) if ($stats[$groupe]) {
     238    foreach ($this->data['groupes'] as $groupe => $arr) if (isset($stats[$groupe])) {
    235239      $this->data['groupes'][$groupe][] = $stats[$groupe]['questions_ecrites']['somme'];
    236240      if ($this->type === "all")
     
    241245      $this->data['totaux'][] = 0;
    242246    foreach ($this->data['groupes'] as $groupe => $arr)
    243       for ($i=0;$i<$n;$i++)
     247      for ($i=0;$i<$n;$i++) if (isset($this->data['groupes'][$groupe][$i]))
    244248        $this->data['totaux'][$i] += $this->data['groupes'][$groupe][$i];
    245249    foreach ($this->data['groupes'] as $groupe => $arr)
    246       for ($i=0;$i<$n;$i++) {
     250      for ($i=0;$i<$n;$i++) if (isset($this->data['groupes'][$groupe][$i])) {
    247251        $tmp = round($this->data['groupes'][$groupe][$i]  / $this->data['totaux'][$i] * 1000)/10;
    248252        $this->data['groupes'][$groupe][$i] = round($this->data['groupes'][$groupe][$i] / $this->data['totaux'][$i] * 1000)/10;
  • cpc/branches/senat/project/batch/senateur/parse_senateur.pl

    r2391 r2658  
    111111        $str =~ s/^(Assemblée parlementaire de l'OTAN)/Délégation française à l'$1/i;
    112112        $str =~ s/Groupe Groupe/Groupe/i;
     113        $str =~ s/écologiste/Écologiste/;
    113114        utf8::encode($str);
    114115        return ucfirst($str);
  • cpc/branches/senat/project/config/app.yml.example

    r2602 r2658  
    44  secret_key: _______PUT_YOUR_KEY_HERE________
    55  legislature: 13
     6  debut_mandature: "2011-10-01"
    67  groupes_actuels: >
    78    ["CRC", "SOC", "ECO", "RDSE", "UCR", "UMP", "NI"]
     
    1314    "Socialiste et apparentés / SOC / 255,50,190 / Socialistes (PS et ratt.) / socialiste",
    1415    "Socialiste, Apparentés et Groupe Europe Écologie Les Verts rattaché / SOC-EELV / 255,50,190 / Socialistes (PS, Verts et ratt.) / socialiste|écologie",
    15     "Socialiste / SOC / 255,50,190 / Socialistes (PS, Verts et ratt.) / socialiste",
    16     "Écologiste / ECO / 0,230,30 / Écologistes (EELV) / [ée]cologiste",
     16    "Socialiste / SOCV / 255,50,190 / Socialistes (PS, Verts et ratt.) / socialiste",
     17    "Écologiste / ECO / 0,230,30 / Écologistes (EELV) / [eéÉ]cologiste",
    1718    "Rassemblement Démocratique et Social Européen / RDSE / 250,195,132 / Socio-Radicaux (PRG, MRC) / démocratique|européen",
    1819    "Union Centriste et Républicaine / UCR / 30,180,255 / Union Centriste (NC, Modem, ...) / centre|centriste",
  • cpc/branches/senat/project/lib/model/doctrine/myTools.class.php

    r2573 r2658  
    1717    $string = preg_replace('/",\s+"/', '","', $string);
    1818    return explode('","', $string);
     19  }
     20
     21  public static function getDebutMandature() {
     22    $date = sfConfig::get('app_debut_mandature');
     23    if (!$date)
     24      $date = "2011-10-01";
     25    return $date;
     26  }
     27
     28  public static function isDebutMandature() {
     29    $gap = time() - strtotime(self::getDebutMandature());
     30    if ($gap > 864000 && $gap < 25920000)
     31      return true;
     32    return false;
    1933  }
    2034
  • cpc/branches/senat/project/lib/task/topSenateursTask.class.php

    r2416 r2658  
    1313    $this->addArgument('month', sfCommandArgument::OPTIONAL, 'First day of the month you want to add in db', '');
    1414    $this->addOption('env', null, sfCommandOption::PARAMETER_OPTIONAL, 'Changes the environment this task is run in', 'test');
    15     $this->addOption('app', null, sfCommandOption::PARAMETER_OPTIONAL, 'Changes the environment this task is run in', 'frontend');
     15    $this->addOption('application', null, sfCommandOption::PARAMETER_OPTIONAL, 'Changes the environment this task is run in', 'frontend');
    1616  }
    1717 
     
    4747  protected function executePresence($q)
    4848  {
    49     $semaines = $q->select('p.id, s.numero_semaine, pr.id, count(s.id)')
     49    $semaines = $q->select('p.id, s.annee, s.numero_semaine, pr.id, count(s.id)')
    5050      ->from('Parlementaire p, p.Presences pr, pr.Seance s')
    5151      ->andWhere('p.groupe_acronyme IS NOT NULL')
    52       ->groupBy('p.id, s.numero_semaine')
     52      ->groupBy('p.id, s.annee, s.numero_semaine')
    5353      ->fetchArray();
    5454    foreach ($semaines as $p) {
     
    342342 
    343343    $qs = clone $q;
    344     $qs->andWhere('s.date > ?', date('Y-m-d', time()-60*60*24*365));
    345 
     344
     345    if (myTools::isDebutMandature())
     346      $enddate = myTools::getDebutMandature();
     347    else $enddate = date('Y-m-d', time()-60*60*24*365);
     348    $qs->andWhere('s.date > ?', $enddate);
    346349   
    347350     
     
    353356   
    354357    $qi = clone $q;
    355     $qi->andWhere('i.date > ?', date('Y-m-d', time()-60*60*24*365));
     358    $qi->andWhere('i.date > ?', $enddate);
    356359
    357360    $this->executeCommissionInterventions(clone $qi);
     
    366369   
    367370    $qa = clone $q;
    368     $qa->andWhere('a.date > ?', date('Y-m-d', time()-60*60*24*365));
     371    $qa->andWhere('a.date > ?', $enddate);
    369372    $this->executeAmendementsSignes(clone $qa);
    370373    $this->orderSenateurs('amendements_signes');
     
    377380
    378381    $qd = clone $q;
    379     $qd->where('t.date > ?', date('Y-m-d', time()-60*60*24*365));
     382    $qd->where('t.date > ?',$enddate);
    380383    $this->executeRapports(clone $qd);
    381384    $this->orderSenateurs('rapports');
     
    388391
    389392    $qq = clone $q;
    390     $qq->where('q.date > ?', date('Y-m-d', time()-60*60*24*365));
     393    $qq->where('q.date > ?', $enddate);
    391394    $this->executeQuestionsEcrites(clone $qq);
    392395    $this->orderSenateurs('questions_ecrites');
     
    399402    $groupes = array();
    400403    foreach(array_keys($this->senateurs) as $id) {
     404      if ($this->senateurs[$id]['groupe'] == "")
     405        continue;
    401406      foreach(array_keys($this->senateurs[$id]) as $key) {
    402407        $groupes[$this->senateurs[$id]['groupe']][$key]['somme'] += $this->senateurs[$id][$key]['value'];
Note: See TracChangeset for help on using the changeset viewer.