MANTISのカスタマイズ ステータスの追加をやってみる。

会社の中でMANTISのワークフローを確認したところ、QA(品保)が差戻した時のステータスがないので、完了スタータスの前に”QA差戻し”というステータスを設定しろとの依頼がくる。
まずは、本家のレシピを參照・・・あったあったこれこれ。


http://www.alles.or.jp/~sogabe/mantis/manual/1.6.4.html

これを參考に以下のようにやってみる。
1・”QA差戻し”ステータスのIDを定義する。他の定義はcoreの下のconstant_inc.phpにあるので參考にして。ただしくれぐれも空白行や空白の改行が最上段や最下段に入らないように注意する!

# su
# cd /var/www/html/mantis
# vi custom_constant_inc.php

<?php
define(QAFEEDBACK,85);
?>

2009/09/10追加
PHPのバージョンが新しい場合(5.2.9以降)

define('QAFEEDBACK',85);

とシングルコーテションで囲む。

2・ステータスの列挙型にQA差戻しを追加。同時にステータスの色を追加する。今回は真っ赤。

# cd /var/www/html/mantis
# vi config_inc.php

       #Add Status
       $g_status_enum_string = '10:new,20:feedback,30:acknowledged,40:confirmed,50:assigned,80:resolved,85:qafeedback,90:closed';

       # Status color additions
       $g_status_colors['qafeedback'] = '#FF0000';

3・言語における表示を設定する。以下に・・・日本語と繁体中文以外のステータスみな英語表示になるので、必要な場合はcase文に対応言語を追加していけばOKである。明日、簡体中国語を追加してみよう。
そうそう、UTF8で書かないといけないので、エディタはviベースのguiソフト、WinVi32を使用した。
なかなか良いと思う。vi使いにはお勧め。

ちなみに各ステータス登録の時に出てくるタイトルとボタン及びEMAIL中の文言は、列挙型でID:の後ろに記述した文字列(今回はqafeedback)をそれぞれs_XXXXXX__bug_button,s_XXXXXX_bug_title,$s_email_notification_title_for_status_bug_XXXXXXのXXXXXXを置き換えて設定すればOKダス。

# cd /var/www/html/mantis
# vi custom_strings_inc.php

<?php
$wk=lang_get_current();
switch($wk){
        case "japanese":
         $s_qafeedback_bug_button = "QA差戻し";
         $s_qafeedback_bug_title = "QA差戻しの理由";
         $s_email_notification_title_for_status_bug_qafeedback = "以下のチケットがQAより差戻されました。";
         $s_status_enum_string = '10:新規,20:フィードバック,30:内容確認済,40:再>現済,50:担当者決定,80:解決済,85:QA差戻し,90:完了';
        break;
        case "chinese_traditional":
         $s_qafeedback_bug_button = "QA退件";
         $s_qafeedback_bug_title = "QA退件之理由";
         $s_email_notification_title_for_status_bug_qafeedback = "以下的問題現在
被重設為QA退件";
         $s_status_enum_string = '10:新問題,20:退回,30:已收到,40:已確認,50:已分>派,80:已解決,85:QA退件,90:已結案';
        break;
        default:
         $s_qafeedback_bug_button = "Issue feed back from QA";
         $s_qafeedback_bug_title = "Set Issue feed back from QA";
         $s_email_notification_title_for_status_bug_qafeedback = "The following issue is ready FEEDD BACK FROM QA";
         $s_status_enum_string = '10:new,20:feedback,30:acknowledged,40:confirmed,50:assigned,80:resolved,85:qafeedback,90:closed';
        break;
};
?>

~

4・あとはワークフローの設定。デフルトでどんなステータスでも、全てのステータスに変更可能なので会社のワークフローにしたがって修正してみる。

$g_status_enum_workflow[NEW_] =
    '10:new,20:feedback,30:acknowledged,40:confirmed,50:assigned,85:qafeedback';
$g_status_enum_workflow[FEEDBACK] =
    '10:new,20:feedback,30:acknowledged,40:confirmed,50:assigned,85:qafeedback';
$g_status_enum_workflow[ACKNOWLEDGED] =
    '20:feedback,30:acknowledged,40:confi rmed,50:assigned,85:qafeedback';
$g_status_enum_workflow[CONFIRMED] =
    '20:feedback,40:confirmed,50:assigned,,85:qafeedback';
$g_status_enum_workflow[ASSIGNED] =
    '20:feedback,50:assigned,85:qafeedback,90:closed';
$g_status_enum_workflow[RESOLVED] =
    '50:assigned,80:resolved,85:qafeedback,90:closed';
$g_status_enum_workflow[QAFEEDBACK] =
    '10:new,20:feedback,50:assigned,80:resolved,85:qafeedback,90:closed';
$g_status_enum_workflow[CLOSED] = '50:assigned,90:closed';


2009/09/07 追加。
TESTLINKを同時に使用している方は、

テストリンクデレクトリ/lib/bugtracking/int_mantis.php
を修正に応じて追加する必要あり。以下の部分に追加する。



class mantisInterface extends bugtrackingInterface
{

  private $code_status = array(10 => 'new',
                               20 => 'feedback',
                               30 => 'acknowledged',
                               40 => 'confirmed',
                               50 => 'assigned',
                               80 => 'resolved',
                               90 => 'closed');

  private $status_color = array('new'          => '#ffa0a0', # red,
                                'feedback'     => '#ff50a8', # purple
                                'acknowledged' => '#ffd850', # orange
                                'confirmed'    => '#ffffb0', # yellow
                                'assigned'     => '#c8c8ff', # blue
                                'resolved'     => '#cceedd', # buish-green
                                'closed'       => '#e8e8e8'); # light gray