gantt: sort issues by start date (#7335)

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11897 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Toshi MARUYAMA
2013-05-21 13:42:19 +00:00
parent 596366b062
commit 8ea4e79964
2 changed files with 57 additions and 9 deletions
+10 -9
View File
@@ -675,18 +675,19 @@ module Redmine
start_date + (end_date - start_date + 1) * (progress / 100.0)
end
# TODO: Sorts a collection of issues by start_date, due_date, id for gantt rendering
def self.sort_issues!(issues)
issues.sort! { |a, b| gantt_issue_compare(a, b) }
issues.sort! {|a, b| sort_issue_logic(a) <=> sort_issue_logic(b)}
end
# TODO: top level issues should be sorted by start date
def self.gantt_issue_compare(x, y)
if x.root_id == y.root_id
x.lft <=> y.lft
else
x.root_id <=> y.root_id
end
def self.sort_issue_logic(issue)
julian_date = Date.new()
ancesters_start_date = []
current_issue = issue
begin
ancesters_start_date.unshift([current_issue.start_date || julian_date, current_issue.id])
current_issue = current_issue.parent
end while (current_issue)
ancesters_start_date
end
def current_limit