From b8982008036624581c1eaa8f92adaa383fafd04e Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Tue, 7 Dec 2010 19:42:36 +0000 Subject: 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 --- app/models/project.rb | 24 ++++++++++-------------- lib/redmine/helpers/gantt.rb | 8 ++++---- 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" -- cgit v1.2.3