Changeset 2558


Ignore:
Timestamp:
Jan 1, 2012, 9:35:51 PM (8 years ago)
Author:
roux
Message:

memes changements API NS que ND

Location:
cpc/branches/senat/project/apps/frontend
Files:
3 edited

Legend:

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

    r2345 r2558  
    139139  url: /senateurs/rechercher/:query
    140140  param: {module: solr, action: redirect, object_name: Parlementaire}
     141list_parlementaires_en_mandat_json:
     142  url: /senateurs/enmandat/json
     143  param: {module: api, action: listParlementaires, format: json, current: true}
     144list_parlementaires_en_mandat_xml:
     145  url: /senateurs/enmandat/xml
     146  param: {module: api, action: listParlementaires, format: xml, current: true}
     147list_parlementaires_en_mandat_csv:
     148  url: /senateurs/enmandat/csv
     149  param: {module: api, action: listParlementaires, format: csv, current: true}
    141150list_parlementaires_json:
    142151  url: /senateurs/json
  • cpc/branches/senat/project/apps/frontend/modules/api/actions/actions.class.php

    r2551 r2558  
    7676  }
    7777
    78   protected function array2hash($array, $hashname) {
     78  protected static function array2hash($array, $hashname) {
    7979    if (!$array)
    8080      return '';
    8181    $hash = array();
    8282    if (!isset($array[0])) {
    83       return $array;
    84     }
    85     foreach($array as $e) {
    86       if ($e)
    87         $hash[] = array($hashname => preg_replace('/\n/', ', ', $e));
     83      if (isset($array->fonction))
     84        return array("organisme" => $array->getNom(), "fonction" => $array->fonction);
     85      else return $array;
     86    }
     87    foreach($array as $e) if ($e) {
     88      if (isset($e->fonction))
     89        $hash[] = array($hashname => array("organisme" => $e->getNom(), "fonction" => $e->fonction));
     90      else $hash[] = array($hashname => preg_replace('/\n/', ', ', $e));
    8891    }
    8992    return $hash;
     
    9295  public function executeListParlementaires(sfWebRequest $request)
    9396  {
    94     $senateurs = Doctrine::getTable('Parlementaire')->createQuery('p')->execute();
     97    $query = Doctrine::getTable('Parlementaire')->createQuery('p');
     98    if ($request->getParameter('current') == true) {
     99      $query->where('fin_mandat IS NULL OR debut_mandat > fin_mandat');
     100      $this->multi = array();
     101      $this->multi['responsabilite'] = 1;
     102      $this->multi['email'] = 1;
     103      $this->multi['adresse'] = 1;
     104      $this->multi['mandat'] = 1;
     105      $this->multi['site'] = 1;
     106    }
     107    $senateurs = $query->execute();
     108    $this->champs = array();
    95109    $this->res = array('senateurs' => array());
    96     $this->champs = array();
    97110    $this->breakline = 'senateur';
    98111    sfProjectConfiguration::getActive()->loadHelpers(array('Url'));
    99112    foreach($senateurs as $dep) {
    100       $senateur = array();
    101       $senateur['id'] = $dep->id;
    102       $this->champs['id'] = 1;
    103       $senateur['nom'] = $dep->nom;
    104       $this->champs['nom'] = 1;
    105       if ($dep->fin_mandat && $dep->fin_mandat >= $dep->debut_mandat)
    106         $senateur['ancien_senateur'] = 1;
    107       else if ($request->getParameter('format') == 'csv')
    108         $senateur['ancien_senateur'] = 0;
    109       $this->champs['ancien_senateur'] = 1;
    110       $senateur['mandat_debut'] = $dep->debut_mandat;
    111       $this->champs['mandat_debut'] = 1;
    112       if ($request->getParameter('format') == 'csv' || $dep->fin_mandat)
    113         $senateur['mandat_fin'] = $dep->fin_mandat;
    114       $this->champs['mandat_fin'] = 1;
     113      if ($request->getParameter('current') == true) {
     114        $senateur = $this->getParlementaireArray($dep);
     115        if ($request->getParameter('format') == 'csv')
     116         foreach(array_keys($senateur) as $key)
     117          if (!isset($this->champs[$key]))
     118           $this->champs[$key] = 1;
     119      } else {
     120        $senateur = array();
     121        $senateur['id'] = $dep->id;
     122        $senateur['nom'] = $dep->nom;
     123        if ($dep->fin_mandat && $dep->fin_mandat >= $dep->debut_mandat)
     124          $senateur['ancien_senateur'] = 1;
     125        else if ($request->getParameter('format') == 'csv')
     126          $senateur['ancien_senateur'] = 0;
     127        $senateur['mandat_debut'] = $dep->debut_mandat;
     128        if ($request->getParameter('format') == 'csv' || $dep->fin_mandat)
     129          $senateur['mandat_fin'] = $dep->fin_mandat;
     130        $this->champs['id'] = 1;
     131        $this->champs['nom'] = 1;
     132        $this->champs['ancien_senateur'] = 1;
     133        $this->champs['mandat_debut'] = 1;
     134        $this->champs['mandat_fin'] = 1;
     135      }
    115136      $senateur['api_url'] = 'http://'.$_SERVER['HTTP_HOST'].url_for('api/parlementaire?format='.$request->getParameter('format').'&slug='.$dep->slug);
    116137      $this->champs['api_url'] = 1;
    117138      $this->res['senateurs'][] = array('senateur' => $senateur);
    118139    }
    119     $this->templatize($request, 'nossenateurs.fr_senateurs');
    120   }
     140    $this->templatize($request, 'nossenateurs.fr_senateurs'.($request->getParameter('current') == true ? "_en_mandat" : ""));
     141  }
     142
    121143  public function executeParlementaire(sfWebRequest $request)
    122144  {
    123145    $slug = $request->getParameter('slug');
    124146    $this->forward404Unless($slug);
    125 
    126147    $senateur = Doctrine::getTable('Parlementaire')->findOneBySlug($slug);
    127148    $this->res = array();
     149    $this->res['senateur'] = $this->getParlementaireArray($senateur);
    128150    $this->multi = array();
    129     $this->res['senateur'] = array();
    130     $this->res['senateur']['id'] = $senateur->id * 1;
    131     $this->res['senateur']['nom'] = $senateur->nom;
    132     $this->res['senateur']['nom_de_famille'] = $senateur->nom_de_famille;
    133     $this->res['senateur']['prenom'] = $senateur->getPrenom();
    134     $this->res['senateur']['slug'] = $senateur->getSlug();
    135     $this->res['senateur']['departement'] = $senateur->nom_circo;
    136     $this->res['senateur']['num_deptmt'] = $senateur->getNumDepartement();
    137     $this->res['senateur']['mandat_debut'] = $senateur->debut_mandat;
    138     if ($senateur->fin_mandat)
    139       $this->res['senateur']['mandat_fin'] = $senateur->fin_mandat;
    140     $groupe = $senateur->getGroupe();
    141     if (is_object($groupe))
    142       $this->res['senateur']['groupe'] = $groupe->__toString();
    143     $this->res['senateur']['groupe_sigle'] = $senateur->groupe_acronyme;
    144     $this->res['senateur']['responsabilites'] = $this->array2hash($senateur->getResponsabilites(), 'responsabilite');
    145     $this->res['senateur']['responsabilites_extra_parlementaires'] = $this->array2hash($senateur->getExtras(), 'responsabilite');
    146151    $this->multi['responsabilite'] = 1;
    147     $this->res['senateur']['sites_web'] = $this->array2hash(unserialize($senateur->sites_web), 'site');
    148     $this->res['senateur']['url_institution'] = $senateur->url_institution;
    149     $this->res['senateur']['emails'] = $this->array2hash(unserialize($senateur->mails), 'email');
    150152    $this->multi['email'] = 1;
    151     $this->res['senateur']['adresses'] = $this->array2hash(unserialize($senateur->adresses), 'adresse');
    152153    $this->multi['adresse'] = 1;
    153     $this->res['senateur']['autres_mandats'] = $this->array2hash(unserialize($senateur->autres_mandats), 'mandat');
    154154    $this->multi['mandat'] = 1;
    155     $this->res['senateur']['profession'] = $senateur->profession;
    156     $this->res['senateur']['place_en_hemicycle'] = $senateur->place_hemicycle;
    157     $this->res['senateur']['sexe'] = $senateur->sexe;
     155    $this->multi['site'] = 1;
    158156    $this->champ = 'senateur';
    159157    $this->breakline = '';
     
    161159    $date = preg_replace('/[- :]/', '', $date);
    162160    $this->templatize($request, 'nossenateurs.fr_'.'_'.$slug.'_'.$date);
     161  }
     162
     163
     164  public static function getParlementaireArray($parl) {
     165    $res = array();
     166    $res['id'] = $parl->id * 1;
     167    $res['nom'] = $parl->nom;
     168    $res['nom_de_famille'] = $parl->nom_de_famille;
     169    $res['prenom'] = $parl->getPrenom();
     170    $res['sexe'] = $parl->sexe;
     171    $res['nom_circo'] = $parl->nom_circo;
     172    $res['num_deptmt'] = $parl->getNumDepartement();
     173    $res['mandat_debut'] = $parl->debut_mandat;
     174    if ($parl->fin_mandat)
     175      $res['mandat_fin'] = $parl->fin_mandat;
     176    $groupe = $parl->getGroupe();
     177    if (is_object($groupe))
     178      $res['groupe'] = self::array2hash($groupe, 'groupe_politique');
     179    $res['groupe_sigle'] = $parl->groupe_acronyme;
     180    $res['responsabilites'] = self::array2hash($parl->getResponsabilites(), 'responsabilite');
     181    $res['responsabilites_extra_parlementaires'] = self::array2hash($parl->getExtras(), 'responsabilite');
     182    $res['sites_web'] = self::array2hash(unserialize($parl->sites_web), 'site');
     183    $res['url_institution'] = $parl->url_institution;
     184    $res['emails'] = self::array2hash(unserialize($parl->mails), 'email');
     185    $res['adresses'] = self::array2hash(unserialize($parl->adresses), 'adresse');
     186    $res['autres_mandats'] = self::array2hash(unserialize($parl->autres_mandats), 'mandat');
     187    $res['profession'] = $parl->profession;
     188    $res['place_en_hemicycle'] = $parl->place_hemicycle;
     189    $res['slug'] = $parl->getSlug();
     190    return $res;
    163191  }
    164192
  • cpc/branches/senat/project/apps/frontend/modules/api/templates/csvSuccess.php

    r1216 r2558  
    2929function depile($res, $breakline, $multi, $comma = 0) {
    3030  if (is_array($res)) {
     31    if (isset($res['organisme']) && isset($res['fonction']))
     32      return depile($res['organisme']." - ".$res['fonction'], $breakline, $multi, $comma);
    3133    if (!isset($res[0])) {
    3234      if (array_keys($res))
     
    3537      return;
    3638    }
    37     foreach($res as $r) {
     39    foreach($res as $r)
    3840      $semi = depile($r, $breakline, $multi);
    39     }
    4041    if ($semi)
    4142      echo ';';
     
    4344    if ($comma)
    4445      $res = preg_replace('/[,;]/', '', $res);
    45     $string = preg_match('/[,;]/', $res);
    46     if ($string)
     46    $string = preg_match('/[,;"]/', $res);
     47    if ($string) {
     48      $res = preg_replace('/"/', '\"', $res);
    4749      echo '"';
     50    }
    4851    echo $res;
    4952    if ($string)
     
    5154    if ($comma)
    5255      echo '|';
    53     else
    54       echo ';';
     56    else echo ';';
    5557  }
    5658}
Note: See TracChangeset for help on using the changeset viewer.