# 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?
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
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
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
end
# Fourth, subprojects
- project.children.visible.each do |project|
+ project.children.visible.has_module('issue_tracking').each do |project|
render_project(project, options)
end
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"
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"