Changeset 2629


Ignore:
Timestamp:
Feb 2, 2012, 1:25:23 AM (8 years ago)
Author:
komodo
Message:

fix pbs memoire api enrichie sur députés en cours de mandat

File:
1 edited

Legend:

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

    r2623 r2629  
    111111    sfProjectConfiguration::getActive()->loadHelpers(array('Url'));
    112112    foreach($senateurs as $dep) {
    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       }
     113      $senateur = $this->getParlementaireArray($dep, $request->getParameter('format'), ($request->getParameter('current') == true ? 1 : 2));
     114      if ($request->getParameter('format') == 'csv')
     115       foreach(array_keys($senateur) as $key)
     116        if (!isset($this->champs[$key]))
     117         $this->champs[$key] = 1;
    136118      $senateur['api_url'] = 'http://'.$_SERVER['HTTP_HOST'].url_for('api/parlementaire?format='.$request->getParameter('format').'&slug='.$dep->slug);
    137119      $this->champs['api_url'] = 1;
     
    146128    $this->forward404Unless($slug);
    147129    $senateur = Doctrine::getTable('Parlementaire')->findOneBySlug($slug);
     130    $this->forward404Unless($senateur);
    148131    $this->res = array();
    149132    $this->res['senateur'] = $this->getParlementaireArray($senateur);
     
    162145
    163146
    164   public static function getParlementaireArray($parl) {
     147  public static function getParlementaireArray($parl, $format, $light = 0) {
    165148    $res = array();
     149    if (!$parl)
     150        throw new Exception("pas de parlementaire");
    166151    $res['id'] = $parl->id * 1;
    167152    $res['nom'] = $parl->nom;
     
    175160    if ($parl->fin_mandat)
    176161      $res['mandat_fin'] = $parl->fin_mandat;
    177     $groupe = $parl->getGroupe();
    178     if (is_object($groupe))
    179       $res['groupe'] = self::array2hash($groupe, 'groupe_politique');
     162    else if ($format == 'csv' && $light != 1)
     163      $res['mandat_fin'] = "";
     164    if ($parl->fin_mandat && $parl->fin_mandat >= $parl->debut_mandat)
     165      $res['ancien_senateur'] = 1;
     166    else if ($format == 'csv' && $light != 1)
     167      $res['ancien_senateur'] = 0;
     168    if (!$light) {
     169      $groupe = $parl->getGroupe();
     170      if (is_object($groupe))
     171        $res['groupe'] = self::array2hash($groupe, 'groupe_politique');
     172      else if ($format == 'csv')
     173        $res['groupe'] = "";
     174    }
    180175    $res['groupe_sigle'] = $parl->groupe_acronyme;
    181     $res['responsabilites'] = self::array2hash($parl->getResponsabilites(), 'responsabilite');
    182     $res['responsabilites_extra_parlementaires'] = self::array2hash($parl->getExtras(), 'responsabilite');
    183     $res['groupes_parlementaires'] = self::array2hash($parl->getGroupes(), 'responsabilite');
    184     $res['sites_web'] = self::array2hash(unserialize($parl->sites_web), 'site');
    185     $res['url_institution'] = $parl->url_institution;
    186     $res['emails'] = self::array2hash(unserialize($parl->mails), 'email');
    187     $res['adresses'] = self::array2hash(unserialize($parl->adresses), 'adresse');
    188     $res['anciens_mandats'] = self::array2hash(unserialize($parl->anciens_mandats), 'mandat');
    189     $res['autres_mandats'] = self::array2hash(unserialize($parl->autres_mandats), 'mandat');
     176    if (!$light) {
     177      $res['responsabilites'] = self::array2hash($parl->getResponsabilites(), 'responsabilite');
     178      $res['responsabilites_extra_parlementaires'] = self::array2hash($parl->getExtras(), 'responsabilite');
     179      $res['groupes_parlementaires'] = self::array2hash($parl->getGroupes(), 'responsabilite');
     180    }
     181    if ($light != 2) {
     182      $res['sites_web'] = self::array2hash(unserialize($parl->sites_web), 'site');
     183      $res['emails'] = self::array2hash(unserialize($parl->mails), 'email');
     184      $res['adresses'] = self::array2hash(unserialize($parl->adresses), 'adresse');
     185      $res['anciens_mandats'] = self::array2hash(unserialize($parl->anciens_mandats), 'mandat');
     186      $res['autres_mandats'] = self::array2hash(unserialize($parl->autres_mandats), 'mandat');
     187    }
    190188    $res['profession'] = $parl->profession;
    191189    $res['place_en_hemicycle'] = $parl->place_hemicycle;
     190    $res['url_institution'] = $parl->url_institution;
    192191    $res['slug'] = $parl->getSlug();
    193192    return $res;
Note: See TracChangeset for help on using the changeset viewer.