N'hésitez pas à me le signaler si nécessaire via le formulaire de contact.
Petite astuce rapide, mais relativement pratique lorsque l’on travaille avec plusieurs projets avec mantis bugtracker, il est courant de saisir un bug dans le mauvais projet.
Pour corriger cela, il n’existe qu’un seul moyen, éditer directement ces informations dans la base de données…
Pas très pratique vous en conviendrez !
Pour faciliter cela quelques modifications suffisent :
Pour commencer nous allons éditer le fichier bug_update_advanced_page.php situé à la racine du dossier.
A la ligne 120 ( Avant le début du formulaire d’édition), rajoutez le code suivant :
# Formulaire pour changer le projet d'un bug echo '<form action="bug_update_change_project_page.php" name="form_bug_update_change_project" method="post" > <input type="hidden" name="bug_id" value="',$f_bug_id,'" /> <input type="hidden" name="new_project_id" id="new_project_id" value="0" /> </form>'; # Fin Formulaire |
Remplacez ensuite les lignes suivantes :
# Project Name echo '<td>', $tpl_project_name, '</td>'; |
par
#Possibilité de changer le projet du bug echo '<td>', $tpl_project_name,'<br />', lang_get('change_project'),' <select id="select_change_project_id" onchange="document.getElementById(\'new_project_id\').value = this.value;document.forms.form_bug_update_change_project.submit();">' ,print_project_option_list( join( ';', helper_get_current_project_trace() ), true, null, true ) ,'</select>', '</td>'; |
Nous allons ensuite créer un nouveau fichier bug_update_change_project_page.php qui sera chargée de mettre à jour le projet du bug.
Voici son code :
# Modification du projet d'un bug depuis sa page d'édition require_once( 'core.php' ); require_once( 'database_api.php' ); # Récupération de l'id du bug et du nouvel id projet $f_bug_id = gpc_get_int( 'bug_id' ); $f_new_project_id = gpc_get( 'new_project_id' ); # Si le projet est un sous-projet l'id récupéré est sous la forme projetParent;id_projet $f_project_id = explode(';',$f_new_project_id); $f_project_id_index = sizeof($f_project_id); if ( sizeof($f_project_id) > 1 ) { $f_project_id_index = sizeof($f_project_id) - 1 ; $f_new_project_id = $f_project_id[$f_project_id_index]; } # Mise à jour de la table $t_bug_table = db_get_table( 'mantis_bug_table' ); $p_query = "UPDATE $t_bug_table SET project_id = ". db_param() ." WHERE id = ".db_param()." "; $query = db_query_bound( $p_query, array( $f_new_project_id, $f_bug_id)); # Redirection vers la page de détails du bug print_header_redirect( 'view.php' . '?id=' . $f_bug_id ); |
Pour finir, il est nécessaire d’ajouter une clé de traduction dans le fichier « lang/strings_french.txt »
$s_change_project = ‘Changer de projet’;
Une fois tous ces éléments changé il est désormais possible de changer le projet d’un bug directement depuis sa page d’édition 🙂
juste pour info, on peut changer le projet associé à un bug en utilisant l’action « déplacer »
Merci pour cette précision 😉