Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 1971 → Rev 1972

/trunk/scripts/modules/maintenance/Maintenance.php
33,6 → 33,17
case 'dedoublonnerPropositions' :
$this->dedoublonnerPropositions();
break;
case 'dedoublonnerPropositionsEtCorrigerDonnees' :
// Suppression des propositions et votes sur des obs inexistantes
// pas la peine de traiter ce qui n'existe plus !
$this->supprimerPropositionsOrphelines();
// Corriger les noms de référentiel permet de simplifier les affectations de noms ensuite
$this->corrigerNomsReferentiels();
// Affectations de nums noms aux propositions qui le permettent
$this->affecterNnsAuxPropositionsViables();
echo "\n";
$this->dedoublonnerPropositions();
break;
default :
throw new Exception("Erreur : la commande '$cmd' n'existe pas!");
}
89,18 → 100,7
$modif_votes = $this->conteneur->getBdd()->executer($requete_votes);
}
private function dedoublonnerPropositions() {
// Suppression des propositions et votes sur des obs inexistantes
// pas la peine de traiter ce qui n'existe plus !
$this->supprimerPropositionsOrphelines();
// Corriger les noms de référentiel permet de simplifier les affectations de noms ensuite
$this->corrigerNomsReferentiels();
// Affectations de nums noms aux propositions qui le permettent
$this->affecterNnsAuxPropositionsViables();
echo "\n";
private function dedoublonnerPropositions() {
echo "Détection des propositions en doublons \n";
// La méthode n'est pas optimisée, on fait beaucoup de boucles, de traitement de données
// etc... mais la méthode ne doit pas être lancée souvent et elle est rapide
354,92 → 354,6
}
}
 
/**
* Tente de fusionner toutes les propositions, pour une observation donnée,
* en se basant sur le couple auteur-nom_selectionne (première version obsolète)
*/
protected function fusionnerPropositionsMauvais($index, &$prop, &$proposition_conservees, &$propositions_supprimees) {
// On garde les num noms valides
if($prop['nom_sel_nn'] != "" && $prop['nom_sel_nn'] != 0) {
if(isset($proposition_conservees[$index])) {
$proposition_conservees[$index]['nom_sel_nn'] = $prop['nom_sel_nn'];
if($proposition_conservees[$index]['nom_ret_nn'] == "" ||
$proposition_conservees[$index]['nom_ret_nn'] == 0) { // on admet que nom_ret existe aussi dans ce cas
$proposition_conservees[$index]['nom_ret'] = $prop['nom_ret'];
$proposition_conservees[$index]['nom_ret_nn'] = $prop['nom_ret_nn'];
}
$raison = "Fusionnée car nn valide ! \n";
$conservee = false;
} else {
$raison = "Conservée car nn valide ! \n";
$proposition_conservees[$index] = $prop;
$conservee = true;
}
}
// On garde le caractère de proposition retenue
if(!isset($proposition_conservees[$index]) && $prop['proposition_retenue'] == "1") {
if(isset($proposition_conservees[$index])) {
$proposition_conservees[$index]['proposition_retenue'] = $prop['proposition_retenue'];
$proposition_conservees[$index]['date_validation'] = $prop['date_validation'];
$proposition_conservees[$index]['ce_validateur'] = $prop['ce_validateur'];
$raison = "Fusionnée car retenue ! \n";
$conservee = false;
} else {
$raison = "Conservée car retenue ! \n";
$proposition_conservees[$index] = $prop;
$conservee = true;
}
}
// On garde le caractère de proposition initiale
if(!isset($proposition_conservees[$index]) && $prop['proposition_initiale'] == "1") {
if(isset($proposition_conservees[$index])) {
$proposition_conservees[$index]['proposition_initiale'] = $prop['proposition_initiale'];
$proposition_conservees[$index]['ce_utilisateur'] = $prop['ce_utilisateur'];
$proposition_conservees[$index]['utilisateur_prenom'] = $prop['utilisateur_prenom'];
$proposition_conservees[$index]['utilisateur_nom'] = $prop['utilisateur_nom'];
$proposition_conservees[$index]['utilisateur_courriel'] = $prop['utilisateur_courriel'];
$conservee = false;
} else {
$raison = "Conservée car initiale ! \n";
$proposition_conservees[$index] = $prop;
$conservee = true;
}
}
// On garde le texte associé
if(!isset($proposition_conservees[$index]) && trim($prop['texte']) != "") {
if(isset($proposition_conservees[$index])) {
$proposition_conservees[$index]['texte'] .= " ".$prop['texte'];
$raison = "Fusionnée car contient du texte ! \n";
$conservee = false;
} else {
$raison = "Conservée car contient du texte ! \n";
$proposition_conservees[$index] = $prop;
$conservee = true;
}
}
// On garde un exemple de chaque couple auteur/nom scientifique
// Ca laisse des doublons en terme de nom mais au moins ça ne lèse pas les auteurs
if(!isset($proposition_conservees[$index])) {
$raison = "Conservée car on conserve une proposition de chaque couple auteur/nom ! \n";
$proposition_conservees[$index] = $prop;
$conservee = true;
}
if($conservee) {
$proposition_conservees[$index] = $prop;
$proposition_conservees[$index]['raison'] = $raison;
} else {
// Si elle n'est rentrée dans aucun des cas de conservation alors on la supprime
// (les informations pertinentes qu'elle pourrait contenir ont été fusionnées plus haut)
$propositions_supprimees[$prop['id_commentaire']] = $prop;
$propositions_supprimees[$prop['id_commentaire']]['raison'] = $raison;
}
}
 
private function mettreAJourPropositions(&$propositions_a_obs_a_nom) {
$propositions_conservees = $propositions_a_obs_a_nom['propositions_conservees'];
foreach($propositions_conservees as $index => $proposition_conservee) {