diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 934a934b5..5676221db 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 8d20704de..7aa3d525f 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(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'})