Fixed: gantt displays issues by date of creation.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4421 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
1158716f46
commit
77c6188ec2
|
@ -68,8 +68,7 @@ class Issue < ActiveRecord::Base
|
||||||
:conditions => ["#{Project.table_name}.status=#{Project::STATUS_ACTIVE}"]
|
:conditions => ["#{Project.table_name}.status=#{Project::STATUS_ACTIVE}"]
|
||||||
named_scope :for_gantt, lambda {
|
named_scope :for_gantt, lambda {
|
||||||
{
|
{
|
||||||
:include => [:tracker, :status, :assigned_to, :priority, :project, :fixed_version],
|
:include => [:tracker, :status, :assigned_to, :priority, :project, :fixed_version]
|
||||||
:order => "#{Issue.table_name}.due_date ASC, #{Issue.table_name}.start_date ASC, #{Issue.table_name}.id ASC"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -178,6 +178,7 @@ module Redmine
|
||||||
|
|
||||||
# Second, Issues without a version
|
# Second, Issues without a version
|
||||||
issues = project.issues.for_gantt.without_version.with_query(@query)
|
issues = project.issues.for_gantt.without_version.with_query(@query)
|
||||||
|
sort_issues!(issues)
|
||||||
if issues
|
if issues
|
||||||
issue_rendering = render_issues(issues, options)
|
issue_rendering = render_issues(issues, options)
|
||||||
output << issue_rendering if options[:format] == :html
|
output << issue_rendering if options[:format] == :html
|
||||||
|
@ -237,6 +238,7 @@ module Redmine
|
||||||
|
|
||||||
issues = version.fixed_issues.for_gantt.with_query(@query)
|
issues = version.fixed_issues.for_gantt.with_query(@query)
|
||||||
if issues
|
if issues
|
||||||
|
sort_issues!(issues)
|
||||||
# Indent issues
|
# Indent issues
|
||||||
options[:indent] += options[:indent_increment]
|
options[:indent] += options[:indent_increment]
|
||||||
output << render_issues(issues, options)
|
output << render_issues(issues, options)
|
||||||
|
@ -952,6 +954,17 @@ module Redmine
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
# Sorts a collection of issues by start_date, due_date, id for gantt rendering
|
||||||
|
def sort_issues!(issues)
|
||||||
|
issues.sort! do |a, b|
|
||||||
|
cmp = 0
|
||||||
|
cmp = (a.start_date <=> b.start_date) if a.start_date? && b.start_date?
|
||||||
|
cmp = (a.due_date <=> b.due_date) if cmp == 0 && a.due_date? && b.due_date?
|
||||||
|
cmp = (a.id <=> b.id) if cmp == 0
|
||||||
|
cmp
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
# Renders both the subjects and lines of the Gantt chart for the
|
# Renders both the subjects and lines of the Gantt chart for the
|
||||||
# PDF format
|
# PDF format
|
||||||
def pdf_subjects_and_lines(pdf, options = {})
|
def pdf_subjects_and_lines(pdf, options = {})
|
||||||
|
|
Loading…
Reference in New Issue