summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/controllers/projects_controller.rb5
-rw-r--r--test/functional/projects_controller_test.rb19
2 files changed, 22 insertions, 2 deletions
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb
index de05fdb35..c99be498e 100644
--- a/app/controllers/projects_controller.rb
+++ b/app/controllers/projects_controller.rb
@@ -175,9 +175,10 @@ class ProjectsController < ApplicationController
@principals_by_role = @project.principals_by_role
@subprojects = @project.children.visible.to_a
@news = @project.news.limit(5).includes(:author, :project).reorder("#{News.table_name}.created_on DESC").to_a
- @trackers = @project.rolled_up_trackers.visible
+ with_subprojects = Setting.display_subprojects_issues?
+ @trackers = @project.rolled_up_trackers(with_subprojects).visible
- cond = @project.project_condition(Setting.display_subprojects_issues?)
+ cond = @project.project_condition(with_subprojects)
@open_issues_by_tracker = Issue.visible.open.where(cond).group(:tracker).count
@total_issues_by_tracker = Issue.visible.where(cond).group(:tracker).count
diff --git a/test/functional/projects_controller_test.rb b/test/functional/projects_controller_test.rb
index c7329b2e5..89945de75 100644
--- a/test/functional/projects_controller_test.rb
+++ b/test/functional/projects_controller_test.rb
@@ -750,6 +750,25 @@ class ProjectsControllerTest < Redmine::ControllerTest
assert_select 'table.issue-report td.total a', :text => %r{\A[1-9]\d*\z}
end
+ def test_show_should_not_display_subprojects_trackers_when_subprojects_issues_is_not_displayed
+ project = Project.find('ecookbook')
+ tracker = project.trackers.find_by(name: 'Support request')
+ project.trackers.delete(tracker)
+ @request.session[:user_id] = 2
+
+ with_settings :display_subprojects_issues => '1' do
+ get(:show, :params => {:id => 'ecookbook'})
+ assert_response :success
+ assert_select 'table.issue-report td.name', :text => 'Support request', :count => 1
+ end
+
+ with_settings :display_subprojects_issues => '0' do
+ get(:show, :params => {:id => 'ecookbook'})
+ assert_response :success
+ assert_select 'table.issue-report td.name', :text => 'Support request', :count => 0
+ end
+ end
+
def test_show_should_spent_and_estimated_time
@request.session[:user_id] = 1
get(:show, :params => {:id => 'ecookbook'})