diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2010-12-07 19:42:36 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2010-12-07 19:42:36 +0000 |
commit | b8982008036624581c1eaa8f92adaa383fafd04e (patch) | |
tree | d0cd057d76e6a662bd8e1df8d654c0246b892e6f | |
parent | 4715a37937cb30192df17a7db18c5f31f24463b0 (diff) | |
download | redmine-b8982008036624581c1eaa8f92adaa383fafd04e.tar.gz redmine-b8982008036624581c1eaa8f92adaa383fafd04e.zip |
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
-rw-r--r-- | app/models/project.rb | 24 | ||||
-rw-r--r-- | lib/redmine/helpers/gantt.rb | 8 | ||||
-rw-r--r-- | test/unit/project_test.rb | 16 |
3 files changed, 14 insertions, 34 deletions
diff --git a/app/models/project.rb b/app/models/project.rb index d68958e27..805e29414 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -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? diff --git a/lib/redmine/helpers/gantt.rb b/lib/redmine/helpers/gantt.rb index 274b4442f..79088dfe5 100644 --- a/lib/redmine/helpers/gantt.rb +++ b/lib/redmine/helpers/gantt.rb @@ -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 diff --git a/test/unit/project_test.rb b/test/unit/project_test.rb index c77d7e61d..87452ceb9 100644 --- a/test/unit/project_test.rb +++ b/test/unit/project_test.rb @@ -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" |