Skip to main content

Redmineのステータスをクローズにすると同時に進捗率を100にするカスタマイズ

個人メモとして利用しているRedmine。ステータスに応じて進捗率を設定してしまうと、トラッカーが追えなくなるため、以下のカスタマイズを行いました。

スクリプトの内容

  1. Redmineに管理者権限でログインします。

    1. 管理>表示のカスタマイズに進みます。
    2. 新しい表示のカスタマイズを選択し、
      1. パスのパターン:空白
      2. 挿入位置:全ページのヘッダ
      3. 種別:JavaScript
      4. コード
$(document).on('change', '#issue_status_id', function () {
  const closedStatuses = [5, 6]; // 閉じられたステータスIDを指定(例: 5: 完了, 6: 却下)
  const selectedStatus = parseInt($(this).val(), 10);

  // 元の進捗率を保存するための変数
  let originalDoneRatio = $('#issue_done_ratio').data('original-done-ratio');

  if (!originalDoneRatio) {
    // 初回実行時に元の進捗率を保存
    originalDoneRatio = $('#issue_done_ratio').val();
    $('#issue_done_ratio').data('original-done-ratio', originalDoneRatio);
  }

  if (closedStatuses.includes(selectedStatus)) {
    $('#issue_done_ratio').val('100'); // 進捗率を100%に設定
  } else {
    // 元の進捗率に戻す
    $('#issue_done_ratio').val(originalDoneRatio);
  }
});

動作の解説

  1. チケットのステータスが変更されると、指定された閉じられたステータスIDの場合は、自動で進捗率が100%に変更されます。
  2. その他のステータスに変更された場合は、初回に保存した元の進捗率に戻されます。

これで、進捗率を維持しつつステータスの変更が可能になります。