function link_to_politicoNomeTipoFromCaricaId($carica_id, $relevance) { $carica = OppCaricaPeer::retrieveByPK($carica_id); if ($carica) { $politico = $carica->getOppPolitico(); $str = $politico->__toString(); } else { return "impossibile trovare carica per {$carica_id}"; } $c = new Criteria(); $c->add(OppCaricaHasGruppoPeer::CARICA_ID, $carica_id); $c->add(OppCaricaHasGruppoPeer::DATA_FINE, NULL); $gruppo_attuale = OppCaricaHasGruppoPeer::doSelectOne($c); $str = $str . " (" . $gruppo_attuale->getOppGruppo()->getAcronimo() . ")"; // Visualizzazione dell'indice di rilevanza $punteggio = $relevance['punteggio']; return link_to($str, '@parlamentare?' . $politico->getUrlParams(), array('class' => 'folk2', 'title' => "punteggio: " . $punteggio)); }
public function executeIndicePresenzeExport() { sfLoader::loadHelpers(array('Number')); $this->session = $this->getUser(); $this->forward404Unless($this->session->hasCredential('adhoc')); $last_date = OppPoliticianHistoryCachePeer::fetchLastData(); $this->processFilters(array('ramo', 'data'), $last_date); $date = $this->filters['data']; $this->processListSort('indice', 'presenze'); $c = new Criteria(); $this->addFiltersCriteria($c); $this->addListSortCriteria($c); $c->addDescendingOrderByColumn(OppPoliticianHistoryCachePeer::CHI_ID); $c->add(OppPoliticianHistoryCachePeer::CHI_TIPO, 'P'); if ($this->hasRequestParameter('limit')) { $limit = $this->getRequestParameter('limit'); $c->setLimit($limit); } $items = OppPoliticianHistoryCachePeer::doSelect($c); $this->csv_header = "parlamentare,sesso,gruppo,circoscrizione,indice,presenze,assenze,missioni,ribellioni"; foreach ($items as $cnt => $item) { $parlamentare = OppCaricaPeer::retrieveByPK($item->getChiId()); if (!is_null($parlamentare)) { $parlamentare_string = $parlamentare->getOppPolitico(); $gruppo = $parlamentare->getGruppo($date) ? $parlamentare->getGruppo($date)->getAcronimo() : ''; $sesso = $parlamentare->getOppPolitico()->getSesso(); } else { $parlamentare_string = $parlamentare->getId(); $gruppo = ""; $sesso = ""; } $circoscrizione = $parlamentare->getCircoscrizione(); $indice = format_number(round($item->getIndice(), 2), 'it_IT'); $presenze = $item->getPresenze(); $assenze = $item->getAssenze(); $missioni = $item->getMissioni(); $ribellioni = $item->getRibellioni(); $csv_row = sprintf("%s,%s,%s,%s,\"%s\",%d,%d,%d,%d", $parlamentare_string, $sesso, $gruppo, $circoscrizione, $indice, $presenze, $assenze, $missioni, $ribellioni); $csv_rows[] = $csv_row; } $this->csv_rows = $csv_rows; $this->setLayout(false); $this->response->setContentType('text/plain'); }
/** * get all distinct available presenters for emendamenti of a given atto * * @param OppAtto $atto * @return hash of type {id => presenter} * @author Guglielmo Celata */ public static function getAvailablePresenters(OppAtto $atto) { $atto_id = $atto->getId(); $sql = "select distinct ce.carica_id " . "from opp_emendamento e left join opp_carica_has_emendamento ce on ce.emendamento_id = e.id " . "join opp_carica c on (c.id=ce.carica_id || ce.carica_id is null) " . "join opp_atto_has_emendamento ae on ae.emendamento_id=e.id " . "where (ce.tipo = 'P' or ce.tipo is null) and ae.atto_id={$atto_id};"; $con = Propel::getConnection(BaseOppEmendamentoPeer::DATABASE_NAME); $stm = $con->createStatement(); $rs = $stm->executeQuery($sql, ResultSet::FETCHMODE_NUM); $items = array(); while ($rs->next()) { if (is_null($rs->getInt(1))) { $items['999999999'] = "Governo, Comm. ..."; } else { $c = OppCaricaPeer::retrieveByPK($rs->getInt(1)); $p = $c->getOppPolitico(); $items[$rs->getInt(1)] = $p->getNome() . " " . strtoupper($p->getCognome()); } } return $items; }
<th scope="col">missioni:</th> <th scope="col">ribellioni:</th> </tr> </thead> <tbody> <?php $tr_class = 'even'; ?> <?php foreach ($pager->getResults() as $record) { ?> <?php $parlamentare = OppCaricaPeer::retrieveByPK($record->getChiId()); ?> <tr class="<?php echo $tr_class; ?> "> <?php $tr_class = $tr_class == 'even' ? 'odd' : 'even'; ?> <th scope="row"> <?php if (!is_null($parlamentare)) { ?> <p><?php echo link_to($parlamentare->getOppPolitico() . " (" . ($parlamentare->getGruppo($date) ? $parlamentare->getGruppo($date)->getAcronimo() : '') . ") ", 'http://' . sfConfig::get('sf_site_url', 'op_openparlamento') . "@parlamentare?" . $parlamentare->getOppPolitico()->getUrlParams(), true);
<?php if ($opp_politician_history_cache->getChiTipo() == 'P' || $opp_politician_history_cache->getChiTipo() == 'N') { ?> <?php $parlamentare = OppCaricaPeer::retrieveByPK($opp_politician_history_cache->getChiId()); ?> <a href="/xml/indici/politici/<?php echo $parlamentare->getId(); ?> .xml" target="_blank"> <?php echo $parlamentare->getOppPolitico(); ?> </a> - <?php echo link_to($parlamentare->getPoliticoId(), 'http://' . sfConfig::get('sf_site_url', 'op_openpolis') . "/parlamentare/" . $parlamentare->getPoliticoId(), true); ?> (<?php echo $parlamentare->getId(); ?> ) <?php }
/** * Aggiorna i valori di indice e posizione nella opp_carica * copiandoli dalla opp_politician_history_cache * Si deve specificare: * - il ramo (camera o senato) * Si può specificare: * - la data (da inizio legislatura a quella data) * Se la data non è specificata, viene copiato il valore dell'ultima data presente nei dati * Se sono passati degli ID (argomenti), sono interpretati come ID di politici e il calcolo è fatto solo per loro */ function run_opp_upgrade_opp_carica_from_cache($task, $args, $options) { static $loaded; // load application context if (!$loaded) { task_loader(); $loaded = true; } echo "memory usage: " . memory_get_usage() . "\n"; $msg = sprintf("start time: %s\n", date('H:i:s')); echo $msg; $data = ''; $tipo = 'P'; if (array_key_exists('data', $options)) { $data = $options['data']; } if (array_key_exists('ramo', $options)) { $ramo = substr(strtolower($options['ramo']), 0, 1); } if ($ramo != 'c' && $ramo != 's') { throw new Exception("I valori per il ramo possono essere: camera o senato"); } // definisce la data fino alla quale vanno fatti i calcoli // data_lookup serve per controllare se i record già esistono if ($data != '') { $legislatura_corrente = OppLegislaturaPeer::getCurrent($data); $data_lookup = $data; } else { $legislatura_corrente = OppLegislaturaPeer::getCurrent(); $data = date('Y-m-d'); $data_lookup = OppPoliticianHistoryCachePeer::fetchLastData('P'); } $msg = sprintf("aggiornamento valori indice,pos per politici data: %10s\n", $data ? $data : '-'); echo pakeColor::colorize($msg, array('fg' => 'cyan', 'bold' => true)); if (count($args) > 0) { try { $parlamentari_rs = OppCaricaPeer::getRSFromIDArray($args); } catch (Exception $e) { throw new Exception("Specificare degli ID validi. \n" . $e); } } else { $parlamentari_rs = OppCaricaPeer::getParlamentariRamoDataRS($ramo, $legislatura_corrente, $data); } echo "memory usage: " . memory_get_usage() . "\n"; $start_time = time(); $cnt = 0; while ($parlamentari_rs->next()) { $cnt++; $p = $parlamentari_rs->getRow(); $nome = $p['nome']; $cognome = $p['cognome']; $tipo_carica_id = $p['tipo_carica_id']; $id = $p['id']; // inserimento o aggiornamento del valore in opp_politician_history_cache $cache_record = OppPoliticianHistoryCachePeer::retrieveByDataChiTipoChiIdRamo($data_lookup, 'P', $id, $ramo); $carica_record = OppCaricaPeer::retrieveByPK($id); if (!$cache_record instanceof OppPoliticianHistoryCache) { $msg = sprintf("%s %s - %d - carica non in cache\n", $nome, $cognome, $id); echo pakeColor::colorize($msg, array('fg' => 'cyan', 'bold' => true)); continue; } $indice = $cache_record->getIndice(); $posizione = $cache_record->getIndicePos(); $carica_record->setIndice($indice); $carica_record->setPosizione($posizione); $carica_record->save(); unset($cache_record); unset($carica_record); $msg = sprintf("%s %s - i: %7.2f p:%4d", $nome, $cognome, $indice, $posizione); echo pakeColor::colorize($msg, array('fg' => 'cyan', 'bold' => true)); $msg = sprintf(" [%4d sec] [%10d bytes]\n", time() - $start_time, memory_get_usage()); echo pakeColor::colorize($msg, array('fg' => 'red', 'bold' => false)); } $msg = sprintf("end time: %s\n", date('H:i:s')); echo $msg; $msg = sprintf("memory usage: %10d\n", memory_get_usage()); echo pakeColor::colorize($msg, array('fg' => 'red', 'bold' => false)); $msg = sprintf("%d parlamentari elaborati\n", $cnt); echo pakeColor::colorize($msg, array('fg' => 'cyan', 'bold' => true)); }