public function executeList()
 {
     $this->session = $this->getUser();
     $ramo = $this->getRequestParameter('ramo', 'camera');
     // estrae i gruppi del ramo
     $this->all_groups = OppGruppoPeer::getAllGroups($ramo, 17, 'tutti');
     // estrae le circoscrizioni, compreso il valore 0
     $this->all_constituencies = OppCaricaPeer::getAllConstituencies($ramo, 'tutte');
     // reset dei filtri se richiesto esplicitamente
     if ($this->getRequestParameter('reset_filters', 'false') == 'true') {
         $this->getRequest()->getParameterHolder()->set('filter_group', '0');
         $this->getRequest()->getParameterHolder()->set('filter_const', '0');
     }
     //estrazione parlamentari
     $this->processFilters(array('group', 'const'), $ramo);
     // if all filters were reset, then restart
     if ($this->getRequestParameter('filter_group') == '0' && $this->getRequestParameter('filter_const') == '0') {
         $this->redirect('@parlamentari?ramo=' . $ramo);
     }
     $this->processSort();
     $c = new Criteria();
     $c->clearSelectColumns();
     $c->addSelectColumn(OppCaricaPeer::ID);
     $c->addSelectColumn(OppPoliticoPeer::ID);
     $c->addSelectColumn(OppPoliticoPeer::COGNOME);
     $c->addSelectColumn(OppPoliticoPeer::NOME);
     $c->addSelectColumn(OppCaricaPeer::CIRCOSCRIZIONE);
     $c->addSelectColumn(OppCaricaPeer::PRESENZE);
     $c->addSelectColumn(OppCaricaPeer::ASSENZE);
     $c->addSelectColumn(OppCaricaPeer::MISSIONI);
     $c->addSelectColumn(OppCaricaPeer::INDICE);
     $c->addSelectColumn(OppCaricaPeer::POSIZIONE);
     $c->addSelectColumn(OppCaricaPeer::MEDIA);
     $c->addSelectColumn(OppCaricaPeer::RIBELLE);
     $c->addSelectColumn(OppPoliticoPeer::N_MONITORING_USERS);
     $c->addSelectColumn(OppCaricaPeer::DATA_INIZIO);
     $c->addSelectColumn(OppCaricaPeer::DATA_FINE);
     $c->addJoin(OppCaricaPeer::POLITICO_ID, OppPoliticoPeer::ID, Criteria::INNER_JOIN);
     if ($ramo == 'camera') {
         $this->getResponse()->setTitle('elenco dei deputati - ' . sfConfig::get('app_main_title'));
         $this->response->addMeta('description', 'Elenco dei deputati della legislatura con assenze, indice di produttività e voti ribelli', true);
         $c->add(OppCaricaPeer::LEGISLATURA, '17', Criteria::EQUAL);
         $c->add(OppCaricaPeer::TIPO_CARICA_ID, '1', Criteria::EQUAL);
         //conteggio numero deputati
         $c1 = new Criteria();
         $c1->add(OppCaricaPeer::LEGISLATURA, '17', Criteria::EQUAL);
         $c1->add(OppCaricaPeer::TIPO_CARICA_ID, '1', Criteria::EQUAL);
         $c1->add(OppCaricaPeer::DATA_FINE, null, Criteria::EQUAL);
         $this->numero_parlamentari = OppCaricaPeer::doCount($c1);
     } else {
         $this->getResponse()->setTitle('elenco dei senatori - ' . sfConfig::get('app_main_title'));
         $this->response->addMeta('description', 'Elenco dei senatori della legislatura con assenze, indice di produttività e voti ribelli', true);
         $cton = $c->getNewCriterion(OppCaricaPeer::LEGISLATURA, '17', Criteria::EQUAL);
         //in questo modo considero i senatori a vita
         $cton1 = $c->getNewCriterion(OppCaricaPeer::LEGISLATURA, null, Criteria::EQUAL);
         $cton->addOr($cton1);
         $c->add($cton);
         $cton = $c->getNewCriterion(OppCaricaPeer::TIPO_CARICA_ID, '4', Criteria::EQUAL);
         $cton1 = $c->getNewCriterion(OppCaricaPeer::TIPO_CARICA_ID, '5', Criteria::EQUAL);
         $cton->addOr($cton1);
         $c->add($cton);
         //conteggio numero senatori
         $c1 = new Criteria();
         $c1->add(OppCaricaPeer::LEGISLATURA, '17', Criteria::EQUAL);
         $c1->add(OppCaricaPeer::TIPO_CARICA_ID, '4', Criteria::EQUAL);
         $c1->add(OppCaricaPeer::DATA_FINE, null, Criteria::EQUAL);
         $numero_senatori = OppCaricaPeer::doCount($c1);
         //conteggio numero senatori a vita
         $c2 = new Criteria();
         $c2->add(OppCaricaPeer::TIPO_CARICA_ID, '5', Criteria::EQUAL);
         $numero_senatori_a_vita = OppCaricaPeer::doCount($c2);
         $this->numero_parlamentari = $numero_senatori + $numero_senatori_a_vita;
     }
     $this->addSortCriteria($c);
     $this->addFiltersCriteria($c);
     $c->add(OppCaricaPeer::DATA_FINE, null, Criteria::EQUAL);
     $this->parlamentari = OppCaricaPeer::doSelectRS($c);
     $this->n_parlamentari = OppCaricaPeer::doCount($c);
     //estrazione parlamentari decaduti
     $c = new Criteria();
     $c->clearSelectColumns();
     $c->addSelectColumn(OppCaricaPeer::ID);
     $c->addSelectColumn(OppPoliticoPeer::ID);
     $c->addSelectColumn(OppPoliticoPeer::COGNOME);
     $c->addSelectColumn(OppPoliticoPeer::NOME);
     $c->addSelectColumn(OppCaricaPeer::CIRCOSCRIZIONE);
     $c->addSelectColumn(OppCaricaPeer::PRESENZE);
     $c->addSelectColumn(OppCaricaPeer::ASSENZE);
     $c->addSelectColumn(OppCaricaPeer::MISSIONI);
     $c->addSelectColumn(OppCaricaPeer::INDICE);
     $c->addSelectColumn(OppCaricaPeer::POSIZIONE);
     $c->addSelectColumn(OppCaricaPeer::MEDIA);
     $c->addSelectColumn(OppCaricaPeer::RIBELLE);
     $c->addSelectColumn(OppPoliticoPeer::N_MONITORING_USERS);
     $c->addSelectColumn(OppCaricaPeer::DATA_INIZIO);
     $c->addSelectColumn(OppCaricaPeer::DATA_FINE);
     $c->addJoin(OppCaricaPeer::POLITICO_ID, OppPoliticoPeer::ID, Criteria::INNER_JOIN);
     if ($ramo == 'camera') {
         $c->add(OppCaricaPeer::TIPO_CARICA_ID, '1', Criteria::EQUAL);
     } else {
         $c->add(OppCaricaPeer::TIPO_CARICA_ID, '4', Criteria::EQUAL);
     }
     $c->add(OppCaricaPeer::LEGISLATURA, '17', Criteria::EQUAL);
     $c->add(OppCaricaPeer::DATA_FINE, 'NULL', Criteria::NOT_EQUAL);
     $this->parlamentari_decaduti = OppCaricaPeer::doSelectRS($c);
 }