Changeset 2696


Ignore:
Timestamp:
May 13, 2012, 10:28:45 PM (8 years ago)
Author:
goya
Message:

synthese et tops sur toute la législature

Location:
cpc/trunk/project
Files:
5 edited

Legend:

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

    r2665 r2696  
    327327
    328328  public static function topSort($a, $b) {
    329     if ($b[$_GET['sort']]['value'] == $a[$_GET['sort']]['value'])
     329    if ($b[$_GET['sort']]['rank'] == $a[$_GET['sort']]['rank'])
    330330      return strcmp($a[0]['nom_de_famille'], $b[0]['nom_de_famille']);
    331     else return $b[$_GET['sort']]['value'] - $a[$_GET['sort']]['value'];
     331    else return $a[$_GET['sort']]['rank'] - $b[$_GET['sort']]['rank'];
    332332  }
    333333
     
    348348      $qp->whereIn('id', $ids);
    349349    }
    350     $qp->andWhere('fin_mandat IS NULL')
    351       ->andWhere('debut_mandat < ?', date('Y-m-d', time()-round(60*60*24*3650/12)))
    352       ->orderBy('nom_de_famille');
     350    $fin = myTools::isFinLegislature();
     351    if (!$fin)
     352      $qp->andWhere('fin_mandat IS NULL')
     353        ->andWhere('debut_mandat < ?', date('Y-m-d', time()-round(60*60*24*3650/12)));
     354    $qp->orderBy('nom_de_famille');
    353355    $parlementaires = $qp->fetchArray();
    354356    unset($qp);
     
    376378      $id = $p['id'];
    377379      $i = 0;
     380      if ($fin && $tops['nb_mois'] < 4)
     381        continue;
    378382      $this->tops[$id][$i++] = $p;
    379383#      $nbmdts = count(unserialize($p['autres_mandats']));
    380384#      $this->sexes[$p['sexe']][0]['nb']++;
    381385#      $this->mandats[$nbmdts][0]['nb']++;
    382       $this->gpes[$p['groupe_acronyme']][0]['nb']++;
     386      if ($fin)
     387        $this->tops[$id][0]["nb_mois"] = $tops['nb_mois'];
     388      if (isset($this->gpes[$p['groupe_acronyme']]) && $p['groupe_acronyme'] != "")
     389        $this->gpes[$p['groupe_acronyme']][0]['nb']++;
    383390      foreach(array_keys($tops) as $key) {
     391        if ($key == "nb_mois")
     392          continue;
     393        $this->tops[$id][$i]['rank'] = $tops[$key]['rank'];
    384394        $this->tops[$id][$i]['value'] = $tops[$key]['value'];
    385 
     395        if ($fin)
     396          $this->tops[$id][$i]['moyenne'] = $tops[$key]['moyenne'];
    386397        $this->tops[$id][$i]['style'] = '';
    387398        if ($tops[$key]['rank'] < 151)
     
    389400        else if ($tops[$key]['rank'] > 577 - 151)
    390401          $this->tops[$id][$i]['style'] = ' style="color:red" ';
    391         if (!isset($this->gpes[$p['groupe_acronyme']][$i]))
    392           $this->gpes[$p['groupe_acronyme']][$i] = 0;
    393         $this->gpes[$p['groupe_acronyme']][$i] += $tops[$key]['value'];
     402        if ($p['groupe_acronyme'] != "") {
     403          if (!isset($this->gpes[$p['groupe_acronyme']][$i]))
     404            $this->gpes[$p['groupe_acronyme']][$i] = 0;
     405          $this->gpes[$p['groupe_acronyme']][$i] += $tops[$key]['value'];
     406        }
    394407/*
    395408        if (!isset($this->sexes[$p['sexe']][$i]))
     
    404417    }
    405418    $this->ktop = array_keys($tops);
     419    if ($this->ktop[0] == "nb_mois")
     420      array_shift($this->ktop);
     421
    406422    $this->sort = $this->getRequestParameter('sort');
    407423    if (($_GET['sort'] = $this->sort)) {
  • cpc/trunk/project/apps/frontend/modules/parlementaire/templates/_top.php

    r2692 r2696  
    4545if (!$top)
    4646  return ;
    47 if (!$parlementaire->fin_mandat || $parlementaire->fin_mandat < $parlementaire->debut_mandat) {
     47if (myTools::isFinLegislature()) {
     48  echo '<h3>Activité totale ('.$top["nb_mois"].' mois) :</h3>';
     49  $rank = 1;
     50} else {
     51 if (!$parlementaire->fin_mandat || $parlementaire->fin_mandat < $parlementaire->debut_mandat) {
    4852  $mois = floor((time() - strtotime($parlementaire->debut_mandat) ) / (60*60*24*30));
    4953  if($mois < 12) {
     
    6569  echo '<h3>Activité sur '.$temps.' :</h3>';
    6670 }
     71}
    6772?>
    6873<ul><?php
  • cpc/trunk/project/apps/frontend/modules/parlementaire/templates/topSuccess.php

    r2680 r2696  
    11<?php $fin = myTools::isFinLegislature();
    2 foreach ($tops as $t) if (!isset($date)) $date = $t[0]['updated_at']; ?>
     2foreach ($tops as $t) if (!isset($date)) {$date = $t[0]['updated_at']; break;} ?>
    33<h1>Synthèse générale de l'activité parlementaire<br/><small><?php if ($fin) echo "sur toute la législature"; else echo "sur les 12 derniers mois"; ?></small></h1>
    44<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>
     
    8080    $cpt++;?><tr<?php if ($cpt %2) echo ' class="tr_odd"'?>>
    8181    <td id="<?php echo $t[0]['slug']; ?>" class="jstitle phototitle c_<?php echo strtolower($t[0]['groupe_acronyme']); ?> <?php echo $class['parl']; ?>" title="<?php echo $t[0]['nom']; ?> -- Député<?php if ($t[0]['sexe'] === "F") echo 'e'; ?> <?php echo $t[0]['groupe_acronyme'].' '.preg_replace('/([^\'])$/', '\\1 ', Parlementaire::$dptmt_pref[trim($t[0]['nom_circo'])]).$t[0]['nom_circo']; ?>"><a class="urlphoto" href="<?php echo url_for('@parlementaire?slug='.$t[0]['slug']); ?>"><?php echo $t[0]['nom']; ?></a></td>
    82     <?php for($i = 1 ; $i < count($t) ; $i++) { ?>
    83       <td title="<?php echo $t[$i]['value'].' '; if ($t[$i]['value'] < 2) echo preg_replace('/s (.*-- )/', ' \\1', preg_replace('/s (.*-- )/', ' \\1', $bulles[$i])); else echo $bulles[$i]; ?>" <?php echo $t[$i]['style']; ?> class="jstitle <?php echo $class[$ktop[$i]]; ?>">
    84       <?php if (preg_match('/\./', $t[$i]['value']))
     82    <?php $field = "value";
     83    if ($fin)
     84      $field = "moyenne";
     85    for($i = 1 ; $i < count($t) ; $i++) {
     86      echo '<td title="'.$t[$i]['value'].' ';
     87      $leg = $bulles[$i];
     88      if ($t[$i]['value'] < 2)
     89        $leg = preg_replace('/s (.*-- )/', ' \\1', preg_replace('/s (.*-- )/', ' \\1', $leg));
     90      if ($fin)
     91        $leg = str_replace(" -- Nombre", " sur ".$t[0]["nb_mois"]." mois de mandat -- Nombre", $leg);
     92      echo $leg;
     93      echo '" '.$t[$i]['style'].' class="jstitle '.$class[$ktop[$i]].'">';
     94      if (!$fin && preg_match('/\./', $t[$i]['value']))
    8595        printf('%02d', $t[$i]['value']);
    86       else echo $t[$i]['value']; ?>
    87       </td>
    88     <?php } ?>
     96      else echo str_replace(".", ",", sprintf('%.02f', $t[$i][$field]));
     97      echo '</td>';
     98    } ?>
    8999  </tr>
    90100<?php } ?>
  • cpc/trunk/project/lib/model/doctrine/Parlementaire.class.php

    r2681 r2696  
    599599
    600600  public function getTop() {
    601     //A supprimer lorsque les top seront unifiés (cf. parlementaire action)
    602     $s = preg_replace('/s:20:"hemicycle_invectives/', 's:31:"hemicycle_interventions_courtes', $this->_get('top'));
    603     return unserialize($s);
     601    return unserialize($this->_get('top'));
    604602  }
    605603
  • cpc/trunk/project/lib/task/topDeputesTask.class.php

    r2680 r2696  
    2121  protected function orderDeputes($type, $reverse = 1) {
    2222    $tot = 0;
     23    $field = "value";
     24    if (myTools::isFinLegislature())
     25      $field = "moyenne";
    2326    foreach(array_keys($this->deputes) as $id) {
    24       if (!isset($this->deputes[$id][$type]['value']))
    25         $this->deputes[$id][$type]['value'] = 0;
    26       $ordered[$id] = $this->deputes[$id][$type]['value'];
     27      if (!isset($this->deputes[$id][$type][$field]))
     28        $this->deputes[$id][$type][$field] = 0;
     29      $ordered[$id] = $this->deputes[$id][$type][$field];
    2730      $tot++;
    2831    }
     
    3134    else
    3235      asort($ordered);
    33       
     36     
    3437    $cpt = 0;
    3538    $last_value = -999;
     
    3740    foreach(array_keys($ordered) as $id) {
    3841      $cpt++;
    39       if ($last_value != $this->deputes[$id][$type]['value'])
     42      if ($last_value != $this->deputes[$id][$type][$field])
    4043        $last_cpt = $cpt;
    4144      $this->deputes[$id][$type]['rank'] = $last_cpt;
    4245      $this->deputes[$id][$type]['max_rank'] = $tot;
    43       $last_value = $this->deputes[$id][$type]['value'];
    44     }
     46      $last_value = $this->deputes[$id][$type][$field];
     47    }
     48  }
     49
     50  protected function executeMoyenneMois($field) {
     51    if (myTools::isFinlegislature() && isset($this->deputes[1]['nb_mois']))
     52      foreach ($this->deputes as $id => $p) {
     53        if (!$this->deputes[$id][$field]['value'])
     54          $this->deputes[$id][$field]['value'] = 0;
     55        if ($this->deputes[$id]['nb_mois'])
     56          $this->deputes[$id][$field]['moyenne'] = round(100 * $this->deputes[$id][$field]['value'] / $this->deputes[$id]['nb_mois']) / 100;
     57        else $this->deputes[$id][$field]['moyenne'] = $this->deputes[$id][$field]['value'];
     58      }
    4559  }
    4660
     
    5670      }
    5771    }
     72    $this->executeMoyenneMois('semaines_presence');
    5873  }
    5974  protected function executeCommissionPresence($q)
     
    6782        $this->deputes[$p['id']]['commission_presences']['value'] = $p['count'];
    6883      }
     84    $this->executeMoyenneMois('commission_presences');
    6985  }
    7086  protected function executeCommissionInterventions($q)
     
    7894      $this->deputes[$p['id']]['commission_interventions']['value'] = $p['count'];
    7995    }
     96    $this->executeMoyenneMois('commission_interventions');
    8097  }
    8198  protected function executeHemicycleInvectives($q)
     
    90107        $this->deputes[$p['id']]['hemicycle_interventions_courtes']['value'] = $p['count'];
    91108      }
     109      $this->executeMoyenneMois('hemicycle_interventions_courtes');
    92110  }
    93111  protected function executeHemicycleInterventions($q)
     
    102120      $this->deputes[$p['id']]['hemicycle_interventions']['value'] = $p['count'];
    103121    }
     122    $this->executeMoyenneMois('hemicycle_interventions');
    104123  }
    105124
     
    114133      $this->deputes[$p['id']]['amendements_signes']['value'] = $p['count'];
    115134    }
     135    $this->executeMoyenneMois('amendements_signes');
    116136  }
    117137 
     
    126146      $this->deputes[$p['id']]['amendements_adoptes']['value'] = $p['count'];
    127147    }
     148    $this->executeMoyenneMois('amendements_adoptes');
    128149  }
    129150
     
    138159      $this->deputes[$p['id']]['amendements_rejetes']['value'] = $p['count'];
    139160    }
     161    $this->executeMoyenneMois('amendements_rejetes');
    140162  }
    141163 
     
    149171      $this->deputes[$p['id']]['questions_ecrites']['value'] = $p['count'];
    150172    }
     173    $this->executeMoyenneMois('questions_ecrites');
    151174  }
    152175  protected function executeQuestionsOrales($q)
     
    162185      $this->deputes[$q['id']]['questions_orales']['value'] = $q['count'];
    163186    }
     187    $this->executeMoyenneMois('questions_orales');
    164188  }
    165189  protected function executeRapports($q)
     
    173197      $this->deputes[$p['id']]['rapports']['value'] = $p['count'];
    174198    }
     199    $this->executeMoyenneMois('rapports');
    175200  }
    176201  protected function executePropositionsEcrites($q)
     
    185210      $this->deputes[$p['id']]['propositions_ecrites']['value'] = $p['count'];
    186211    }
     212    $this->executeMoyenneMois('propositions_ecrites');
    187213  }
    188214  protected function executePropositionsSignees($q)
     
    195221    foreach ($parlementaires as $p) {
    196222      $this->deputes[$p['id']]['propositions_signees']['value'] = $p['count'];
    197     }
     223    }
     224    $this->executeMoyenneMois('propositions_signees');
    198225  }   
    199226
     
    300327      ->where('type = ?', 'depute');
    301328    if (!$fin)
    302       $qdeputes->andWhere('fin_mandat IS NULL');
    303     else $qdeputes->andWhere('groupe_acronyme IS NOT NULL AND groupe_acronyme <> ?', '');
     329      $qdeputes->andWhere('fin_mandat IS NULL');
    304330    foreach($qdeputes->fetchArray() as $d) {
    305       $this->deputes[$d['id']]['groupe'] = $d['groupe_acronyme'];
     331      if (isset($d['groupe_acronyme']))
     332        $this->deputes[$d['id']]['groupe'] = $d['groupe_acronyme'];
     333      else $this->deputes[$d['id']]['groupe'] = "";
     334      if ($fin)
     335        $this->deputes[$d['id']]['nb_mois'] = Doctrine::getTable('Parlementaire')->find($d['id'])->getNbMois();
    306336    }
    307337
     
    371401    $groupes = array();
    372402    foreach(array_keys($this->deputes) as $id) {
    373       if ($this->deputes[$id]['groupe'] == "")
    374         continue;
    375       foreach(array_keys($this->deputes[$id]) as $key) {
    376         $groupes[$this->deputes[$id]['groupe']][$key]['somme'] += $this->deputes[$id][$key]['value'];
    377         $groupes[$this->deputes[$id]['groupe']][$key]['nb']++;
     403      if ($this->deputes[$id]['groupe'] != "") {
     404        foreach(array_keys($this->deputes[$id]) as $key) {
     405          $groupes[$this->deputes[$id]['groupe']][$key]['somme'] += $this->deputes[$id][$key]['value'];
     406          $groupes[$this->deputes[$id]['groupe']][$key]['nb']++;
     407        }
    378408      }
    379409      unset($this->deputes[$id]['groupe']);
Note: See TracChangeset for help on using the changeset viewer.