ログ日記

作業ログと日記とメモ

Redmineの少機能設定

以前はあれもこれもプラグインでできるなどと色々入れた結果、やることがぼやけたりRedmineバージョンを上げづらくなったりということになっていた。


今回はとにかくメニューやリンクを減らす方向で設定。

  • admin以外はシステム管理者にしない
  • ロールと権限で開発者・報告者にメンバー管理を追加して、普段は開発者で使って他のユーザーの確認に報告者になったりチケット整理時だけ管理者になったりする
  • トラッカーで使うのは「担当者」「対象バージョン」「進捗率」とカスタムフィールドのみ
  • 進捗率はステータスから自動計算(設定のチケットトラッキング)
  • ワークフローは初期設定のものから更に削る
  • チケットのステータスは「要求待ち」「要件確定」「テスト待ち」「リリース待ち」など表記を変える
  • フィールドに対する権限で、一定のステータス以降は「担当者」「対象バージョン」を必須
  • バージョンは「6月リリース分」「7月リリース分」「未定」「随時」など
    • ここで期限を区切るのでチケットでは日付や工数を管理しない
  • プロジェクトのモジュールで使うのは「チケットトラッキング」「リポジトリ」「デフォルトカスタムクエリ」

カレンダーやガントチャートは、必要なときほど情報が入力されていないことが多いので保留。


  • Redmine Default Custom Query」プラグインで、チケット一覧の初期表示を変える
  • Redmine Startpage plugin」でトップをマイページまたはチケット一覧に変える
  • 「View Customize plugin」で
    • サイドメニューを隠す ( http://blog.enjoyxstudy.com/entry/2015/03/23/000000 )
    • ヘッダーのhomeやhelpを隠す
    • プロジェクトへのリンクに /issues を付け足して、初期画面はチケット一覧にする
    • issues/new$ の条件で、新規チケットの初期値を設定する

他にもマイページに固定リンクやお知らせを入れたりメニューの順番を入れ替えたりできるView Customize pluginは思った以上に何でもできる。すごい。
担当者のデフォルト設定が〜〜とか色々記事があるけど、issues/new$ に対する設定で全部jQueryでやってしまえ的な。

$(function(){
  var val = 0;

  // 担当者初期値(自分)
  $('#issue_assigned_to_id option').each(function(){
    var v = $(this);
    if (v.text() == '<< 自分 >>'){
      val = v.attr('value');
      return false;
    }
  });
  $('#issue_assigned_to_id').val(val);

  // バージョン初期値(一番上)
  val = 0;
  $('#issue_fixed_version_id option').each(function(){
    var v = $(this);
    if (v.attr('value')){
      val = v.attr('value');
      return false;
    }
  });
  $('#issue_fixed_version_id').val(val);
});

グローバルな設定にロジックを埋め込んでも気にならないなら、かなり入力の手間を省けそう。
リポジトリへのリンクも、初期画面をmasterではなくdevelopに変更するとか。


サイドメニューを隠すJavaScriptの前にこれを入れて

  // プロジェクトタブの移動
  if ($('#main-menu a.overview')[0]){
    $('#sidebar').append('<h3>プロジェクト</h3>');
    var ul = $('<ul>');
    $('#sidebar').append(ul);
    $.each(['overview', 'activity', 'repository', 'settings'], function(k, v){
      ul.append($('#main-menu a.' + v).parent());
    });
  }

たまにしか見ないプロジェクトの概要、活動、リポジトリ、設定タブをサイドメニューに移すとか。