Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 2253 → Rev 2254

/trunk/jrest/services/CelWidgetExport.php
130,9 → 130,6
private function calculerNbLignesMaxParFichier($colonnes) {
$limite = $this->limite_decoupage_defaut;
// TODO: gérer une réduction du nombre de ligne max différement suivant chaque colonne
// demandée, car elles n'impactent pas toutes le temps de d'export de la même manière.
$facteur_reduction = count($colonnes) <= 2 ? 1 : pow(0.85, count($colonnes) - 2);
switch($this->format) {
case 'csv':
145,10 → 142,6
$limite = 300;
break;
}
$limite = floor($limite * $facteur_reduction);
// précaution pour les données baseflor qui semblent très difficile à exporter par plus de 10000
$limite = (in_array('baseflor', $colonnes) && $limite > 10000) ? 10000 : $limite;
 
return $limite;
}
/trunk/jrest/lib/FormateurGroupeColonne.php
686,12 → 686,14
if(!$obsids) return;
if(!self::referenceTableExiste()) return NULL;
 
$req = sprintf("SELECT referentiel, num_nom_retenu, %s FROM cel_references r" .
" INNER JOIN cel_obs c ON (r.num_nom_retenu = c.nom_ret_nn)" .
// Attention (en attendant de faire une meilleure table et une meilleure requete) le distinct est très important
$req = sprintf("SELECT DISTINCT referentiel, num_nom_retenu, %s FROM cel_references r" .
" INNER JOIN cel_obs c ON (r.num_nom_retenu = c.nom_ret_nn) AND r.referentiel = c.nom_referentiel " .
" WHERE c.id_observation IN (%s)",
//" AND catminat_code IS NOT NULL", // TODO: suppression des NULL ici signifie que le cache sera partiel...
implode(',', array_keys(self::$baseflor_col)),
implode(',', $obsids));
$res = Cel::db()->requeter($req);
if(!$res) return NULL;
 
729,10 → 731,6
 
list($referentiel) = explode(':', strtolower($obs['nom_referentiel']));
$cache_id = $referentiel . '-' . $obs['nom_ret_nn'];
//echo $cache_id;
//echo '<pre>'.print_r(self::$cache['getBaseflor'], true).'</pre>';
//exit;
 
// XXX: problème de valeurs NULL pour utiliser simplement isset() ?
// @ car getBaseflor[] n'est peut-être pas encore initialisé