- 追加された行はこの色です。
- 削除された行はこの色です。
- Redmine/親子関係を崩さずにガントチャートを日付順に表示する へ行く。
- Redmine/親子関係を崩さずにガントチャートを日付順に表示する の差分を削除
#author("2017-06-14T01:57:25+00:00","default:haruki","haruki") *キーワード [#a81c779d] -Redmine *関連 [#ccef8095] -[[RDBで階層構造を表現する方法(の考え方)>http://fukuchiharuki.blogspot.jp/2011/10/rdb.html]] -[[RDBで階層構造を表現する方法(の実装)>http://fukuchiharuki.blogspot.jp/2011/10/rdb_15.html]] *概要 [#q0bd5354] Redmineガントチャートのソート順が微妙なので次のようにします。 -親子関係を崩さず -その中で開始日順に並べる *方法 [#p4691ff9] 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 *解説 [#z1895fda] 次の順にしています。 + 親ID(昇順) + 開始日(昇順) + 左位置(昇順) 左位置というのは[[入れ子集合モデル>http://fukuchiharuki.blogspot.jp/2011/10/rdb.html]]の[[実装>http://fukuchiharuki.blogspot.jp/2011/10/rdb_15.html]]だと思います。 左位置の昇順だと親が先に来ます。 しかしこのままだと''ある親の子供たち(しかも1階層まで)の中で開始日順に並ぶまで''です。。最初のソートで''親の開始日順''にできるとよいですが、少しの修正では無理そうです。 ばくっとした概念(開発やUTなどのフェーズ)で親子関係を作ってしまうのがとりあえずの対策かなと思います。 *参考 [#n6cf11fb] -[[【Redmine 1.1.2】ガントチャートを開始日順にソートする|渋谷ではたらくマー君の技術とかブログ。>http://ameblo.jp/hihihihiroki/entry-10854421155.html]] -[[redmine ガントチャート チケットの開始日順でソートする>http://doruby.kbmj.com/everyday_is_everyday/20120927/redmine____]]