Select projects with issue_tracking module for gantt display and remove the nil start/due dates trick.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4477 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2010-12-07 19:42:36 +00:00
parent 4715a37937
commit b898200803
3 changed files with 14 additions and 34 deletions

View File

@ -449,24 +449,20 @@ class Project < ActiveRecord::Base
# The earliest start date of a project, based on it's issues and versions
def start_date
if module_enabled?(:issue_tracking)
[
issues.minimum('start_date'),
shared_versions.collect(&:effective_date),
shared_versions.collect {|v| v.fixed_issues.minimum('start_date')}
].flatten.compact.min
end
[
issues.minimum('start_date'),
shared_versions.collect(&:effective_date),
shared_versions.collect {|v| v.fixed_issues.minimum('start_date')}
].flatten.compact.min
end
# The latest due date of an issue or version
def due_date
if module_enabled?(:issue_tracking)
[
issues.maximum('due_date'),
shared_versions.collect(&:effective_date),
shared_versions.collect {|v| v.fixed_issues.maximum('due_date')}
].flatten.compact.max
end
[
issues.maximum('due_date'),
shared_versions.collect(&:effective_date),
shared_versions.collect {|v| v.fixed_issues.maximum('due_date')}
].flatten.compact.max
end
def overdue?

View File

@ -97,7 +97,7 @@ module Redmine
if @project
return number_of_rows_on_project(@project)
else
Project.roots.visible.inject(0) do |total, project|
Project.roots.visible.has_module('issue_tracking').inject(0) do |total, project|
total += number_of_rows_on_project(project)
end
end
@ -125,7 +125,7 @@ module Redmine
end
# Subprojects
project.children.visible.each do |subproject|
project.children.visible.has_module('issue_tracking').each do |subproject|
count += number_of_rows_on_project(subproject)
end
@ -154,7 +154,7 @@ module Redmine
if @project
render_project(@project, options)
else
Project.roots.visible.each do |project|
Project.roots.visible.has_module('issue_tracking').each do |project|
render_project(project, options)
end
end
@ -190,7 +190,7 @@ module Redmine
end
# Fourth, subprojects
project.children.visible.each do |project|
project.children.visible.has_module('issue_tracking').each do |project|
render_project(project, options)
end

View File

@ -882,14 +882,6 @@ class ProjectTest < ActiveSupport::TestCase
should "be nil if there are no issues on the project" do
assert_nil @project.start_date
end
should "be nil if issue tracking is disabled" do
Issue.generate_for_project!(@project, :start_date => Date.today)
@project.enabled_modules.find_all_by_name('issue_tracking').each {|m| m.destroy}
@project.reload
assert_nil @project.start_date
end
should "be tested when issues have no start date"
@ -913,14 +905,6 @@ class ProjectTest < ActiveSupport::TestCase
should "be nil if there are no issues on the project" do
assert_nil @project.due_date
end
should "be nil if issue tracking is disabled" do
Issue.generate_for_project!(@project, :due_date => Date.today)
@project.enabled_modules.find_all_by_name('issue_tracking').each {|m| m.destroy}
@project.reload
assert_nil @project.due_date
end
should "be tested when issues have no due date"