キーワード†
- Redmine
概要†
Redmineガントチャートのソート順が微妙なので次のようにします。
- 親子関係を崩さず
- その中で開始日順に並べる
方法†
gantt.rbを探して
$ find / -name "gantt.rb"
次のようにファイルを書き換えます。
- (環境による)/lib/redmine/helpers/gantt.rb
646| # TODO: top level issues should be sorted by start date 647| def gantt_issue_compare(x, y) 648| if x.root_id == y.root_id 649| if x.start_date == y.start_date 650| x.lft <=> y.lft 651| else 652| x.start_date <=> y.start_date 653| end 654| else 655| x.root_id <=> y.root_id 656| end 657| end
解説†
次の順にしています。
- 親ID(昇順)
- 開始日(昇順)
- 左位置(昇順)
左位置というのは入れ子集合モデルの実装だと思います。 左位置の昇順だと親が先に来ます。
しかしこのままだとある親の子供たち(しかも1階層まで)の中で開始日順に並ぶまでです。。最初のソートで親の開始日順にできるとよいですが、少しの修正では無理そうです。 ばくっとした概念(開発やUTなどのフェーズ)で親子関係を作ってしまうのがとりあえずの対策かなと思います。