Changeset 2732


Ignore:
Timestamp:
May 19, 2012, 3:59:57 PM (8 years ago)
Author:
goya
Message:

api synthese

Location:
cpc/trunk/project
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • cpc/trunk/project/apps/frontend/config/routing.yml

    r2723 r2732  
    311311  url: /synthese
    312312  param: {module: parlementaire, action: top}
     313api_synthese_current:
     314  url: /synthese/data/:format
     315  param: {module: api, action: topSynthese}
    313316api_synthese:
    314317  url: /synthese/:date/:format
  • cpc/trunk/project/apps/frontend/modules/api/actions/actions.class.php

    r2628 r2732  
    7373
    7474    $this->breakline = 'depute';
    75     $this->templatize($request, $date.'_stats_deputes');
    76   }
     75    $this->templatize($request, 'nosdeputes.fr_'.$date.'_stats_deputes');
     76  }
     77
     78  public function executeTopSynthese(sfWebRequest $request) {
     79    $qp = Doctrine::getTable('Parlementaire')->createQuery('p');
     80    $fin = myTools::isFinLegislature();
     81    if (!$fin) $qp->andWhere('fin_mandat IS NULL')
     82      ->andWhere('debut_mandat < ?', date('Y-m-d', time()-round(60*60*24*3650/12)));
     83    $qp->orderBy('nom_de_famille');
     84    $parlementaires = $qp->execute();
     85    unset($qp);
     86    $this->res = array();
     87    $this->champs = array();
     88    foreach($parlementaires as $p) {
     89      $tops = $p->top;
     90      $depute['id'] = $p->id;
     91      $this->champs['id'] = 1;
     92      if ($fin && $tops['nb_mois'] < 4)
     93        continue;
     94      $depute = $this->getParlementaireArray($p, $request->getParameter('format'), 2);
     95      if ($fin)
     96        $depute["nb_mois"] = $tops['nb_mois'];
     97      if ($request->getParameter('format') == 'csv')
     98       foreach(array_keys($depute) as $key)
     99        if (!isset($this->champs[$key]))
     100         $this->champs[$key] = 1;
     101      foreach(array_keys($tops) as $k) {
     102        if ($k != 'nb_mois') {
     103          //Gestion de l'ordre des parametres
     104          $kfinal = preg_replace('/^\d*_/', '', $k);
     105          $depute[$kfinal] = $tops[$k]['value'];
     106          if (!isset($this->champs[$kfinal])) $this->champs[$kfinal] = 1;
     107          if ($fin) {
     108            $depute[$kfinal.'_moyenne_mensuelle']  = $tops[$k]['moyenne'];
     109            if (!isset($this->champs[$kfinal.'_moyenne_mensuelle'])) $this->champs[$kfinal.'_moyenne_mensuelle'] = 1;
     110          }
     111        } else {
     112          $depute[$k] = $tops[$k];
     113          if (!isset($this->champs[$k])) $this->champs[$k] = 1;
     114        }
     115      }
     116      $this->res["deputes"][] = array('depute' => $depute);
     117    }
     118
     119    for($i = 0 ; $i < count($this->res["deputes"]) ; $i++) {
     120      foreach(array_keys($this->champs) as $key) {
     121        if (!isset($this->res['deputes'][$i]['depute'][$key])) {
     122          $this->res['deputes'][$i]['depute'][$key] = 0;
     123        }
     124      }
     125    }
     126
     127    $this->breakline = 'depute';
     128    $this->templatize($request, 'nosdeputes.fr_synthese_'.date('Y-m-d'));
     129  }
     130
    77131
    78132  protected static function array2hash($array, $hashname) {
     
    109163    $this->res = array('deputes' => array());
    110164    $this->breakline = 'depute';
    111     sfProjectConfiguration::getActive()->loadHelpers(array('Url'));
    112165    foreach($deputes as $dep) {
    113166      $depute = $this->getParlementaireArray($dep, $request->getParameter('format'), ($request->getParameter('current') == true ? 1 : 2));
     
    116169        if (!isset($this->champs[$key]))
    117170         $this->champs[$key] = 1;
    118       $depute['api_url'] = 'http://'.$_SERVER['HTTP_HOST'].url_for('api/parlementaire?format='.$request->getParameter('format').'&slug='.$dep->slug);
    119       $this->champs['api_url'] = 1;
    120171      $this->res['deputes'][] = array('depute' => $depute);
    121172    }
    122     $this->templatize($request, 'nosdeputes.fr_deputes'.($request->getParameter('current') == true ? "_en_mandat" : ""));
     173    $this->templatize($request, 'nosdeputes.fr_deputes'.($request->getParameter('current') == true ? "_en_mandat" : "").date('Y-m-d'));
    123174  }
    124175
     
    193244    $res['url_an'] = $parl->url_an;
    194245    $res['slug'] = $parl->getSlug();
     246    sfProjectConfiguration::getActive()->loadHelpers(array('Url'));
     247    $res['url_nosdeputes'] = url_for('@parlementaire?slug='.$res['slug'], 'absolute=true');
     248    $res['url_nosdeputes_api'] = url_for('api/parlementaire?format='.$format.'&slug='.$res['slug'], 'absolute=true');
     249    $res['nb_mandats'] = count(unserialize($parl->getAutresMandats()));
    195250    return $res;
    196251  }
  • cpc/trunk/project/apps/frontend/modules/parlementaire/templates/topSuccess.php

    r2720 r2732  
    104104</div>
    105105<p class="aligncenter"><small>Les chiffres en couleur indiquent que le député se trouve pour le critère indiqué parmi <span style="color:green">les 150 premiers</span> ou <span style="color:red">les 150 derniers</span>.</small></p>
     106<p class="aligncenter"><small>Télécharger les données : <b><?php echo link_to('CSV', '@api_synthese_current?format=csv'); ?></b> &mdash; <b><?php echo link_to('JSON', '@api_synthese_current?format=json'); ?></b> &mdash; <b><?php echo link_to('XML', '@api_synthese_current?format=xml'); ?></b></small>&nbsp;&nbsp;<a href="http://www.regardscitoyens.org/open-data-en-france/"><img src="/images/opendata.png" alt="OpenData" title="OpenData" style="border: none; margin-bottom: -4px;"/></a></p>
    106107</div></div>
    107108<h2 id="groupes">Activité moyenne d'un député de chaque groupe politique <?php if ($fin) echo "sur toute la législature"; else echo "au cours des 12 derniers mois"; ?> :</h2>
Note: See TracChangeset for help on using the changeset viewer.