[Redmine] EasyGanttで日本の祝日表示に対応する - 2021年版

Redmineの標準のガントチャートは一覧表示されたものを眺める以上のことができません。そんな時に使うのが「EasyGanttプラグイン」。ドラッグ&ドロップでチケットの期間や依存関係が設定できる優れ物で、機能は限定されてしまいますが無料でも利用できます。


www.youtube.com

非常に便利なのですが、海外製ということもあり日本の祝日にはデフォルトだと対応していません。そのまま使っているとうっかり祝日も工数に含めてしまいそうになるのでViewCustomizePluginを利用しこの問題に対応します。 blog.katsubemakito.net

2021年末までの祝日一覧も掲載しましたのでコピペしてご利用ください。

動作原理

以下のページを参考にさせていただきました。 qiita.com

ただこちらのページのコードをコピペするとJavaScriptが以下のようなエラーを吐いてしまうので、ちょっとだけ書き方を変更しています。

Uncaught TypeError: Cannot read property 'loader' of undefined at HTMLDocument.ysy.initGantt (main.js?1600173167:7)

設定する

Redmine4.1、EasyGanttplugin1.12で動作確認をしています。

パターン、挿入位置、種別

パスのパターン
/projects/.*/easy_gantt
プロジェクトのパターン
(空欄)
挿入位置
全ページのヘッダ
種別
JavaScript

ソースコード

以下のJavaScriptを追加します。

$(document).ready(function(){
  // 祝日対応
  window.ysy.settings.holidays.push(
    '2021-01-01',  // 元旦
    '2021-01-11',  // 成人の日
    '2021-02-11',  // 建国記念の日
    '2021-02-23',  // 天皇誕生日
    '2021-03-20',  // 春分の日
    '2021-04-29',  // 昭和の日
    '2021-05-03',  // 憲法記念日
    '2021-05-04',  // みどりの日
    '2021-05-05',  // こどもの日
    '2021-07-22',  // 海の日
    '2021-07-23',  // スポーツの日
    '2021-08-08',  // 山の日
    '2021-08-09',  // 振替休日
    '2021-09-20',  // 敬老の日
    '2021-09-23',  // 秋分の日
    '2021-11-03',  // 文化の日
    '2021-11-23',  // 勤労感謝の日
    '2021-12-31'   // 大晦日
  );
});

これでうっかり非人道的なスケジュールを組んでしまうことも減りそうですねw

内閣府の発表に合わせ修正