##// END OF EJS Templates
Select projects with issue_tracking module for gantt display and remove the nil start/due dates trick....
Jean-Philippe Lang -
r4363:b89820080366
parent child
Show More
@@ -449,25 +449,21 class Project < ActiveRecord::Base
449
449
450 # The earliest start date of a project, based on it's issues and versions
450 # The earliest start date of a project, based on it's issues and versions
451 def start_date
451 def start_date
452 if module_enabled?(:issue_tracking)
453 [
452 [
454 issues.minimum('start_date'),
453 issues.minimum('start_date'),
455 shared_versions.collect(&:effective_date),
454 shared_versions.collect(&:effective_date),
456 shared_versions.collect {|v| v.fixed_issues.minimum('start_date')}
455 shared_versions.collect {|v| v.fixed_issues.minimum('start_date')}
457 ].flatten.compact.min
456 ].flatten.compact.min
458 end
457 end
459 end
460
458
461 # The latest due date of an issue or version
459 # The latest due date of an issue or version
462 def due_date
460 def due_date
463 if module_enabled?(:issue_tracking)
464 [
461 [
465 issues.maximum('due_date'),
462 issues.maximum('due_date'),
466 shared_versions.collect(&:effective_date),
463 shared_versions.collect(&:effective_date),
467 shared_versions.collect {|v| v.fixed_issues.maximum('due_date')}
464 shared_versions.collect {|v| v.fixed_issues.maximum('due_date')}
468 ].flatten.compact.max
465 ].flatten.compact.max
469 end
466 end
470 end
471
467
472 def overdue?
468 def overdue?
473 active? && !due_date.nil? && (due_date < Date.today)
469 active? && !due_date.nil? && (due_date < Date.today)
@@ -97,7 +97,7 module Redmine
97 if @project
97 if @project
98 return number_of_rows_on_project(@project)
98 return number_of_rows_on_project(@project)
99 else
99 else
100 Project.roots.visible.inject(0) do |total, project|
100 Project.roots.visible.has_module('issue_tracking').inject(0) do |total, project|
101 total += number_of_rows_on_project(project)
101 total += number_of_rows_on_project(project)
102 end
102 end
103 end
103 end
@@ -125,7 +125,7 module Redmine
125 end
125 end
126
126
127 # Subprojects
127 # Subprojects
128 project.children.visible.each do |subproject|
128 project.children.visible.has_module('issue_tracking').each do |subproject|
129 count += number_of_rows_on_project(subproject)
129 count += number_of_rows_on_project(subproject)
130 end
130 end
131
131
@@ -154,7 +154,7 module Redmine
154 if @project
154 if @project
155 render_project(@project, options)
155 render_project(@project, options)
156 else
156 else
157 Project.roots.visible.each do |project|
157 Project.roots.visible.has_module('issue_tracking').each do |project|
158 render_project(project, options)
158 render_project(project, options)
159 end
159 end
160 end
160 end
@@ -190,7 +190,7 module Redmine
190 end
190 end
191
191
192 # Fourth, subprojects
192 # Fourth, subprojects
193 project.children.visible.each do |project|
193 project.children.visible.has_module('issue_tracking').each do |project|
194 render_project(project, options)
194 render_project(project, options)
195 end
195 end
196
196
@@ -883,14 +883,6 class ProjectTest < ActiveSupport::TestCase
883 assert_nil @project.start_date
883 assert_nil @project.start_date
884 end
884 end
885
885
886 should "be nil if issue tracking is disabled" do
887 Issue.generate_for_project!(@project, :start_date => Date.today)
888 @project.enabled_modules.find_all_by_name('issue_tracking').each {|m| m.destroy}
889 @project.reload
890
891 assert_nil @project.start_date
892 end
893
894 should "be tested when issues have no start date"
886 should "be tested when issues have no start date"
895
887
896 should "be the earliest start date of it's issues" do
888 should "be the earliest start date of it's issues" do
@@ -914,14 +906,6 class ProjectTest < ActiveSupport::TestCase
914 assert_nil @project.due_date
906 assert_nil @project.due_date
915 end
907 end
916
908
917 should "be nil if issue tracking is disabled" do
918 Issue.generate_for_project!(@project, :due_date => Date.today)
919 @project.enabled_modules.find_all_by_name('issue_tracking').each {|m| m.destroy}
920 @project.reload
921
922 assert_nil @project.due_date
923 end
924
925 should "be tested when issues have no due date"
909 should "be tested when issues have no due date"
926
910
927 should "be the latest due date of it's issues" do
911 should "be the latest due date of it's issues" do
General Comments 0
You need to be logged in to leave comments. Login now