/trunk/scripts/modules/tests/Tests.php |
---|
1228,7 → 1228,10 |
private function testerTailleDesChamps($colonnes, $analyses) { |
$info = array('nom' => 'Structure -> champs tronqués', |
'description' => "Vérifie que les données de type texte insérées dans la table n'ont pas été tronquées lors de leur insertion.", |
'description' => "Vérifie que le risque éventuel que des données de type texte insérées ". |
"dans la table aient pu être tronquées lors de leur insertion.\n". |
"Un résultat de type KO ne signifie pas forcément un problème à résoudre mais attire l'attention du coordinateur ". |
"sur un problème éventuel.", |
'resultat' => false); |
$tailles_champs_maxi = array(); |
/trunk/configurations/referentiel_v2.1.ini |
---|
4,8 → 4,8 |
champs = "num_nom,num_nom_retenu,num_tax_sup,rang,nom_complet,nom_supra_generique,genre,epithete_infra_generique,epithete_sp,type_epithete,epithete_infra_sp,cultivar_groupe,cultivar,nom_commercial,auteur,annee,biblio_origine,notes,nom_addendum,homonyme,basionyme,synonyme_proparte,synonyme_douteux,synonyme_mal_applique,synonyme_orthographique,biblio_statut,hybride_parent_01,hybride_parent_01_notes,hybride_parent_02,hybride_parent_02_notes,nom_francais,presence,statut_origine,statut_introduction,statut_culture" |
; Noms et types des champs |
champs_type = "num_nom=INT, |
num_nom_retenu=INT, |
num_tax_sup=INT, |
num_nom_retenu=VARCHAR, |
num_tax_sup=VARCHAR, |
rang=INT, |
nom_complet=VARCHAR, |
nom_supra_generique=VARCHAR, |
18,20 → 18,20 |
cultivar=VARCHAR, |
nom_commercial=VARCHAR, |
auteur=VARCHAR, |
annee=INT, |
annee=VARCHAR, |
biblio_origine=VARCHAR, |
notes=TEXT, |
nom_addendum=VARCHAR, |
homonyme=INT, |
basionyme=INT, |
homonyme=VARCHAR, |
basionyme=VARCHAR, |
synonyme_proparte=VARCHAR, |
synonyme_douteux=BOOL, |
synonyme_mal_applique=BOOL, |
synonyme_orthographique=INT, |
synonyme_douteux=VARCHAR, |
synonyme_mal_applique=VARCHAR, |
synonyme_orthographique=VARCHAR, |
biblio_statut=TEXT, |
hybride_parent_01=INT, |
hybride_parent_01=VARCHAR, |
hybride_parent_01_notes=TEXT, |
hybride_parent_02=INT, |
hybride_parent_02=VARCHAR, |
hybride_parent_02_notes=TEXT, |
nom_francais=VARCHAR, |
presence=VARCHAR, |
/trunk/bibliotheque/dao/TraitementDao.php |
---|
40,6 → 40,7 |
* Retourne l'ensemble des traitements en attente. |
* |
* @param string le code du projet de référentiel. |
* @param string le nom du script à lancer en minuscule. |
* @return mixed un tableau contenant les informations sur les traitements en attente ou false en cas d'échec. |
*/ |
public function getTraitementsEnAttente($code_projet, $script) { |
54,6 → 55,7 |
* Retourne l'ensemble des traitements en cours. |
* |
* @param string le code du projet de référentiel. |
* @param string le nom du script à lancer en minuscule. |
* @return mixed un tableau contenant les informations sur les traitements en cours ou false en cas d'échec. |
*/ |
public function getTraitementsEnCours($code_projet, $script) { |
68,10 → 70,11 |
* Retourne les ids de l'ensemble des traitements obsolètes. |
* |
* @param string le code du projet de référentiel. |
* @param string le nom du script à lancer en minuscule. |
* @return mixed un tableau contenant les ids des traitements obsolètes ou false en cas d'échec. |
*/ |
public function getTraitementsObsoletes($code_projet) { |
$url = $this->url."/Obsolete/$code_projet"; |
public function getTraitementsObsoletes($code_projet, $script) { |
$url = $this->url."/Obsolete/$code_projet/$script"; |
$json = $this->envoyerRequeteConsultation($url); |
$traitements = json_decode($json, true); |
82,10 → 85,11 |
* Retourne le dernier traitement demandé et non traité pour un projet donné. |
* |
* @param string le code du projet de référentiel. |
* @param string le nom du script à lancer en minuscule. |
* @return mixed un tableau contenant les informations sur le dernier traitement demandé et non traité ou false en cas d'échec. |
*/ |
public function getDernierTraitement($code_projet) { |
$url = $this->url."/DerniereDemande/$code_projet"; |
public function getDernierTraitement($code_projet, $script) { |
$url = $this->url."/DerniereDemande/$code_projet/$script"; |
$json = $this->envoyerRequeteConsultation($url); |
$traitements = json_decode($json, true); |
96,6 → 100,7 |
* Retourne l'ensemble des traitements terminés. |
* |
* @param string le code du projet de référentiel. |
* @param string le nom du script à lancer en minuscule. |
* @return mixed un tableau contenant les informations sur les traitements terminés ou false en cas d'échec. |
*/ |
public function getTraitementsTermines($code_projet, $script) { |
110,6 → 115,7 |
* Ajoute une demande de traitement pour une référentiel donné. |
* |
* @param string le code du référentiel. |
* @param string le nom du script à lancer en minuscule. |
* @return mixed l'id du traitement ou false en cas d'échec. |
*/ |
public function ajouterTraitement($code_projet, $script) { |
/trunk/interfaces/index.php |
---|
27,7 → 27,7 |
<style type="text/css" media="screen"> |
<!-- |
@import "http://www.tela-botanica.org/sites/commun/fr/styles/commun_complexe.css"; |
@import "http://www.tela-botanica.org/sites/parlons_bota/fr/styles/parlons_bota.css"; |
@import "http://www.tela-botanica.org/sites/atelier/fr/styles/atelier.css"; |
--> |
</style> |
41,27 → 41,31 |
<script type="text/javascript" src="interfaces/squelettes/js/jquery-ui-1.8.2.custom.min.js"></script> |
</head> |
<body xml:lang="fr" lang="fr"> |
<div id="reducteur"> |
<div id="zone-centrale"> |
<div id="logo_tela"> |
<div id="zone-logo"> |
<a href="/referentiel/" title="Retour à l'accueil du site"> |
<img src="http://www.tela-botanica.org/sites/reseau/generique/images/graphisme/logo_jaune.gif" alt="le logo de Tela Botanica"/> |
</a> |
</div> |
<div id="bandeau"> |
<div id="bandeau_contenu"> |
<div id="titre_monde"> |
<div id="zone-entete"> |
<div id="zone-entete-contenu"> |
<div id="zone-titre-site"> |
<h1>Referentiels</h1> |
</div> |
</div> |
</div> |
<div id="droite"> |
<div id="onglets"> |
<div id="zone-corps"> |
<div id="zone-navigation"> |
<?php echo Referentiel::getContenuMenu(); ?> |
</div> |
<div id="zone-corps-contenu"> |
<div id="zone-fil-ariane"> |
<p>Vous êtes ici :</p> |
<?php echo Referentiel::getContenuNavigation(); ?> |
</div> |
<div id="contenu"> |
<div id="entete"> |
<?php echo Referentiel::getContenuTete(); ?> |
</div> |
76,15 → 80,10 |
<?php echo Referentiel::getChrono(); ?> |
<?php echo Referentiel::getExceptions(); ?> |
</div> |
<div id="pied"> |
<div id="zone-pied"> |
<p> ©<a href="http://www.tela-botanica.org/" accesskey="1">Tela Botanica</a> / 2000-<?=date('Y')?> - Le réseau des Botanistes Francophones</p> |
</div> |
</div> |
<div id="nav_gauche"> |
<?php echo Referentiel::getContenuMenu(); ?> |
</div> |
</div> |
</body> |
</html> |
/trunk/interfaces/squelettes/form_traitement.tpl.html |
---|
File deleted |
\ No newline at end of file |
/trunk/interfaces/squelettes/test.tpl.html |
---|
File deleted |
\ No newline at end of file |
/trunk/interfaces/squelettes/resultat.tpl.html |
---|
16,12 → 16,12 |
<?php if (isset($resultat)) : ?> |
<h2>Description</h2> |
<p class="description"><?=$resultat['description']?></p> |
<h2>Résultat</h2> |
<p class="resultat <?=$resultat['resultat'] ? 'ok' : 'ko';?>"><?=$resultat['resultat'] ? 'ok' : 'ko';?></p> |
<h2>Description</h2> |
<p class="description"><?=$resultat['description']?></p> |
<h2>Messages du test</h2> |
<?php if (isset($resultat['message'])) : ?> |
<div class="message"><?=$resultat['message']?></div> |
/trunk/interfaces/squelettes/menu.tpl.html |
---|
1,6 → 1,4 |
<!-- REF - DEBUT MENU --> |
<h1>Menu</h1> |
<?php if (isset($menus)) : ?> |
<ul> |
<?php foreach ($menus as $menu) : ?> |
/trunk/interfaces/squelettes/accueil.tpl.html |
---|
1,6 → 1,6 |
<!-- REF - DEBUT ACCUEIL --> |
<h1>Liste des référentiels en cours de travail</h1> |
<p>Veuillez sélectionner un référentiel ci-dessous pour accéder aux différentes applications disponibles.</p> |
<?php if (isset($messages)) : ?> |
<h2>Messages</h2> |
<?php foreach ($messages as $message) : ?> |
/trunk/interfaces/squelettes/form_tests.tpl.html |
---|
New file |
0,0 → 1,88 |
<!-- REF - DEBUT TEST --> |
<script type="text/javascript"> |
$(document).ready(function() { |
$('#ref-dem-ok').click(function(e) { |
var ok = false; |
if (confirm('Êtes vous sûr de vouloir lancer de nouveaux tests ?')) { |
ok = true; |
} |
return ok; |
}); |
}); |
</script> |
<h1>Tests du référentiel « <?=$ref;?> »</h1> |
<h2>Demande de tests</h2> |
<?php if (isset($ref)) : ?> |
<div id="zone-form"> |
<form id="ref-demande-traitement" name="ref-demande-traitement" action="<?=$url_form;?>" method="get"> |
<input name="module" type="hidden" value="<?=$url_module;?>" /> |
<input name="action" type="hidden" value="<?=$url_action_demande;?>" /> |
<input name="ref" type="hidden" value="<?=$ref;?>" /> |
<input id="ref-dem-ok" type="submit" value="1. Lancer les tests" /> |
</form> |
<form id="ref-rafraichir" name="ref-rafraichir" action="<?=$url_form;?>" method="get"> |
<input name="module" type="hidden" value="<?=$url_module;?>" /> |
<input name="action" type="hidden" value="<?=$url_action_rafraichir;?>" /> |
<input name="ref" type="hidden" value="<?=$ref;?>" /> |
<input id="ref-raf-ok" type="submit" value="2. Rafraichir" /> |
</form> |
</div> |
<?php endif; ?> |
<?php if (isset($messages)) : ?> |
<h2>Messages</h2> |
<?php foreach ($messages as $message) : ?> |
<p class="information"><?=$message;?></p> |
<?php endforeach; ?> |
<?php endif; ?> |
<h2>Tests</h2> |
<table> |
<caption>Traitements <?=strftime('à %H:%M:%S le %d %B %Y')?></caption> |
<thead> |
<tr> |
<th>Nom (#)</th> |
<th>État</th> |
<th>Date début</th> |
<th>Date fin</th> |
<th>Durée</th> |
</tr> |
</thead> |
<tbody> |
<?php if (isset($traitements_en_attente)) : ?> |
<?php foreach ($traitements_en_attente as $traitement) : ?> |
<tr> |
<td><?=$traitement['nom']?> <span class="discretion">(id:<?=$traitement['id_traitement']?>)</span></a></td> |
<td class="traitement-attente">En attente de traitement...</td> |
<td> </td> |
<td> </td> |
<td> </td> |
</tr> |
<?php endforeach; ?> |
<?php endif; ?> |
<?php if (isset($traitements_en_cours)) : ?> |
<?php foreach ($traitements_en_cours as $traitement) : ?> |
<tr> |
<td><?=$traitement['nom']?> <span class="discretion">(id:<?=$traitement['id_traitement']?>)</span></a></td> |
<td class="traitement-cours">En cours de traitement...</td> |
<td><?=$traitement['date_debut']?></td> |
<td> </td> |
<td> </td> |
</tr> |
<?php endforeach; ?> |
<?php endif; ?> |
<?php if (isset($traitements_termines)) : ?> |
<?php foreach ($traitements_termines as $traitement) : ?> |
<tr> |
<td><a href="<?=$traitement['url']?>"><?=$traitement['nom']?> <span class="discretion">(id:<?=$traitement['id_traitement']?>)</span></a></td> |
<td class="traitement-termine">Terminé</td> |
<td><?=$traitement['date_debut']?></td> |
<td><?=$traitement['date_fin']?></td> |
<td><?=$traitement['duree']?></td> |
</tr> |
<?php endforeach; ?> |
<?php endif; ?> |
</tbody> |
</table> |
<!-- REF - FIN TEST --> |
/trunk/interfaces/squelettes/css/referentiel/referentiel.css |
---|
1,5 → 1,125 |
@CHARSET "UTF-8"; |
/*--------------------------------------------------------------------------------------------------------------*/ |
/* Générique */ |
table { |
border:1px solid #36560B; |
border-collapse: collapse;} |
td, th { |
border:1px solid #36560B; |
padding:5px;} |
/*--------------------------------------------------------------------------------------------------------------*/ |
/* Disposition */ |
#zone-centrale { |
text-align:center; |
} |
#zone-logo{ |
left:18px; |
margin:7px 10px; |
position:absolute; |
top:2px; |
z-index:1;} |
#zone-entete{ |
height:120px; |
margin:0; |
background:url("http://www.tela-botanica.org/sites/atelier/generique/images/graphisme/bandeau_atelier_fond.png") repeat-x scroll 0 0 transparent;} |
#zone-entete-contenu{ |
height:120px; |
background:url("http://www.tela-botanica.org/sites/atelier/generique/images/graphisme/bandeau_atelier.jpg") no-repeat scroll 0 0 transparent;} |
#zone-titre-site{ |
height:38px; |
margin:0; |
text-align:right;} |
#zone-titre-site h1{ |
margin:0 20px 0 0; |
padding:0; |
background-color:transparent; |
font-size:28px; |
font-weight:bold;} |
#zone-navigation{ |
position:relative; |
float:left; |
z-index:2; |
text-align:left; |
font-weight:bold;} |
#zone-corps{ |
position:relative; |
margin:0; |
text-align:left;} |
#zone-corps-contenu{ |
position:relative; |
clear:both; |
min-height:300px; |
padding:0 2px; |
text-align:justify;} |
#zone-fil-ariane{ |
} |
#zone-pied{ |
} |
/*--------------------------------------------------------------------------------------------------------------*/ |
/* Fil d'ariane */ |
#zone-fil-ariane{ |
padding:10px 5px;} |
#zone-fil-ariane p{ |
font-weight:bold; |
float:left; |
margin:0; |
padding-right:5px;} |
.fil-ariane{ |
list-style-type:none; |
margin:0; |
padding:0;} |
.fil-ariane li{ |
float:left; |
margin:0; |
padding:0;} |
.fil-ariane li:before{ |
content: " > ";} |
.fil-ariane a{ |
padding:0 5px;} |
/*--------------------------------------------------------------------------------------------------------------*/ |
/* Navigation onglets */ |
#zone-navigation ul { |
margin:0; |
padding:0; |
list-style:none;} |
#zone-navigation li { |
float:left; |
margin:0; |
padding:0; |
background:url(http://www.tela-botanica.org/sites/commun/generique/images/graphisme/norm_right_both.gif) no-repeat right top;} |
#zone-navigation a { |
float:left; /* ligne ajoutee pour compatibilite IE5-Mac */ |
display:block; |
background:url("http://www.tela-botanica.org/sites/commun/generique/images/graphisme/norm_left_both.gif") no-repeat left top; |
width:.1em; |
white-space:nowrap;/*2 lignes ajoutees pour compatibilite IE : extension de la zone cliquable a l'ensemble de l'onglet*/ |
padding:5px 15px 4px; |
text-decoration:none;} |
/* On retablit le float a sa valeur correct mais le hack de l'antislash commente cache cette regle a IE5-Mac \*/ |
#zone-navigation a {float:none;} |
/* End IE5-Mac hack */ |
#zone-navigation > ul a { |
width:auto;} /*propriete ajoutee pour contredire la ligne speciale IE (ci dessus) pour les autres navigateurs*/ |
#zone-navigation li:hover { |
background-position:100% -150px;} |
#zone-navigation li:hover a { |
background-position:0% -150px;} |
#zone-navigation .menu_inactif { |
border-bottom:1px solid;} |
#zone-navigation .menu_actif, #zone-navigation .onglet_actif { |
position:relative; |
background-position:100% -150px; |
padding-bottom:2px; |
z-index:3; |
font-weight:bold;} |
#zone-navigation .menu_actif a, #zone-navigation .onglet_actif a { |
position:relative; |
background-position:0% -150px; |
padding-bottom:3px; |
z-index:4;} |
/*--------------------------------------------------------------------------------------------------------------*/ |
/* Général */ |
.discretion{ |
color:#A9A9A9; |
31,10 → 151,17 |
margin:0 !important;} |
.liste-champs li{ |
padding:2px;} |
/*--------------------------------------------------------------------------------------------------------------*/ |
/* Demande de traitements */ |
#zone-form form{ |
display:inline;} |
#zone-form input { |
margin:5px;} |
.traitement-attente{ |
background-color:#F16158;} |
.traitement-cours{ |
background-color:#FCCB54;} |
.traitement-termine{ |
background-color:#BBEFA5;} |
/*--------------------------------------------------------------------------------------------------------------*/ |
/* Traitement */ |
#resultats { |
/trunk/interfaces/controleurs/Test.php |
---|
46,6 → 46,7 |
*/ |
public function afficherInterface() { |
$donnees = array(); |
$this->definirCommeModulePrincipal(get_class($this)); |
$this->url->unsetVariablesRequete(array('module', 'action', 'ref')); |
$donnees['url_form'] = $this->url->getUrl(); |
$donnees['url_module'] = 'Test'; |
/trunk/interfaces/controleurs/Versionnage.php |
---|
48,6 → 48,7 |
*/ |
public function afficherInterface() { |
$donnees = array(); |
$this->definirCommeModulePrincipal(get_class($this)); |
// Paramêtres pour l'url du formulaire |
$this->url->unsetVariablesRequete(array('module', 'action', 'ref')); |
/trunk/interfaces/controleurs/AppliControleur.php |
---|
143,6 → 143,19 |
$txt = preg_replace('/&(?!([a-z]+|#[0-9]+|#x[0-9a-f]+);)/i', '&', $txt, -1); |
return $txt; |
} |
protected function initialiserModulePrincipal() { |
$_SESSION['module_principal'] = null; |
} |
protected function definirCommeModulePrincipal($module_nom) { |
$_SESSION['module_principal'] = $module_nom; |
} |
private function getModulePrincipalCourant() { |
return $_SESSION['module_principal']; |
} |
/** |
* Construction du menu et stockage dans le conteneur de sortie RENDU_MENU. |
* |
180,10 → 193,10 |
$entree['url'] = $this->obtenirUrlDetailReferentiel($referentiel); |
$donnees['entrees'][] = $entree; |
$module = Referentiel::getModule(); |
if ($module != 'Accueil') { |
$entree['nom'] = $module; |
$entree['url'] = $this->obtenirUrlMenu($module, $referentiel); |
$module_principal = $this->getModulePrincipalCourant(); |
if (isset($module_principal)) { |
$entree['nom'] = $module_principal; |
$entree['url'] = $this->obtenirUrlMenu($module_principal, $referentiel); |
$donnees['entrees'][] = $entree; |
} |
/trunk/interfaces/controleurs/Consultation.php |
---|
31,6 → 31,7 |
* Fonction d'affichage par défaut |
*/ |
public function executerActionParDefaut() { |
$this->definirCommeModulePrincipal(get_class($this)); |
$this->construireMenu($this->referentiel); |
$this->construireFilAriane($this->referentiel); |
$this->setSortie(self::RENDU_CORPS, '<p>En cours de réalisation...</p>', false); |
/trunk/interfaces/controleurs/Accueil.php |
---|
43,6 → 43,7 |
*/ |
public function afficherAccueil() { |
$donnees = array(); |
$this->initialiserModulePrincipal(); |
$infos = $this->referentielDao->getReferentielsDispo(); |
if ($infos != false) { |
67,6 → 68,7 |
*/ |
public function afficherDetail() { |
$donnees = array(); |
$this->initialiserModulePrincipal(); |
// Traitement de l'info sur le code du référentiel |
if (isset($this->referentiel)) { |
/trunk/services/modules/Traitement.php |
---|
76,20 → 76,19 |
* Retourne les infos sur la dernière demande de traitement pour un projet donné. |
*/ |
public function getElementDerniereDemande($params_url) { |
$p = $this->traiterParametresUrl(array('projet'), $params_url); |
$p = $this->traiterParametresUrl(array('projet', 'script'), $params_url); |
extract($p); |
$donnees = false; |
if (!is_null($projet)) { |
if (isset($projet) && isset($script)) { |
$requete = ($this->distinct ? 'SELECT DISTINCT' : 'SELECT').' * '. |
'FROM ref_traitement '. |
"WHERE referentiel_code = $projet ". |
" AND script = $script ". |
' AND date_fin IS NULL '. |
'ORDER BY '.((!is_null($this->orderby)) ? $this->orderby : 'meta_date_creation DESC').' '. |
'LIMIT 0,1 '; |
$this->debug[] = $requete; |
// Récupération des résultats |
try { |
$donnees = $this->bdd->query($requete)->fetch(PDO::FETCH_ASSOC); |
102,7 → 101,8 |
$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage()); |
} |
} else { |
$this->messages[] = "Veuillez préciser le nom de code du projet comme premier paramêtre (ex. : bdnff)."; |
$this->messages[] = "Veuillez préciser le nom de code du projet comme premier paramêtre (ex. : bdnff) ". |
"et le code du script à lancer comme second paramêtre (ex. : tests ou versionnage)."; |
} |
return $donnees; |
184,15 → 184,16 |
* Retourne les id des demandes de traitements obsolètes. |
*/ |
public function getElementObsolete($params_url) { |
$p = $this->traiterParametresUrl(array('projet'), $params_url); |
$p = $this->traiterParametresUrl(array('projet', 'script'), $params_url); |
extract($p); |
$sortie = false; |
if (!is_null($projet)) { |
$sortie = null; |
if (isset($projet) && isset($script)) { |
try { |
$requete = 'SELECT MAX(date_debut) '. |
'FROM ref_traitement '. |
"WHERE referentiel_code = $projet ". |
" AND script = $script ". |
' AND date_debut IS NOT NULL '. |
'GROUP BY referentiel_code '; |
204,6 → 205,7 |
$requete = 'SELECT id_traitement '. |
'FROM ref_traitement '. |
"WHERE referentiel_code = $projet ". |
" AND script = $script ". |
' AND date_debut IS NULL '. |
' AND date_fin IS NULL '. |
" AND meta_date_creation < $date_max "; |
216,7 → 218,7 |
$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage()); |
} |
// Pos-traitement |
$sortie = array(); |
if ($donnees != false) { |
foreach ($donnees as $donnee) { |
$sortie[] = $donnee['id_traitement']; |
223,7 → 225,8 |
} |
} |
} else { |
$this->messages[] = "Veuillez préciser le nom de code du projet comme premier paramêtre (ex. : bdnff)."; |
$this->messages[] = "Veuillez préciser le nom de code du projet comme premier paramêtre (ex. : bdnff) ". |
"et le code du script à lancer comme second paramêtre (ex. : tests ou versionnage)."; |
} |
return $sortie; |