##// END OF EJS Templates
Fixed: gantt displays issues by date of creation....
Jean-Philippe Lang -
r4307:77c6188ec272
parent child
Show More
@@ -68,8 +68,7 class Issue < ActiveRecord::Base
68 68 :conditions => ["#{Project.table_name}.status=#{Project::STATUS_ACTIVE}"]
69 69 named_scope :for_gantt, lambda {
70 70 {
71 :include => [:tracker, :status, :assigned_to, :priority, :project, :fixed_version],
72 :order => "#{Issue.table_name}.due_date ASC, #{Issue.table_name}.start_date ASC, #{Issue.table_name}.id ASC"
71 :include => [:tracker, :status, :assigned_to, :priority, :project, :fixed_version]
73 72 }
74 73 }
75 74
@@ -178,6 +178,7 module Redmine
178 178
179 179 # Second, Issues without a version
180 180 issues = project.issues.for_gantt.without_version.with_query(@query)
181 sort_issues!(issues)
181 182 if issues
182 183 issue_rendering = render_issues(issues, options)
183 184 output << issue_rendering if options[:format] == :html
@@ -237,6 +238,7 module Redmine
237 238
238 239 issues = version.fixed_issues.for_gantt.with_query(@query)
239 240 if issues
241 sort_issues!(issues)
240 242 # Indent issues
241 243 options[:indent] += options[:indent_increment]
242 244 output << render_issues(issues, options)
@@ -952,6 +954,17 module Redmine
952 954
953 955 private
954 956
957 # Sorts a collection of issues by start_date, due_date, id for gantt rendering
958 def sort_issues!(issues)
959 issues.sort! do |a, b|
960 cmp = 0
961 cmp = (a.start_date <=> b.start_date) if a.start_date? && b.start_date?
962 cmp = (a.due_date <=> b.due_date) if cmp == 0 && a.due_date? && b.due_date?
963 cmp = (a.id <=> b.id) if cmp == 0
964 cmp
965 end
966 end
967
955 968 # Renders both the subjects and lines of the Gantt chart for the
956 969 # PDF format
957 970 def pdf_subjects_and_lines(pdf, options = {})
General Comments 0
You need to be logged in to leave comments. Login now