diff --git a/app/models/query.rb b/app/models/query.rb index 18f1b135bf..74bb5e50a2 100644 --- a/app/models/query.rb +++ b/app/models/query.rb @@ -493,7 +493,7 @@ class Query < ActiveRecord::Base end def trackers - @trackers ||= (project.nil? ? Tracker.all : project.rolled_up_trackers).visible.sorted + @trackers ||= (project.nil? ? Tracker.all : project.rolled_up_trackers(Setting.display_subprojects_issues?)).visible.sorted end # Returns a hash of localized labels for all filter operators diff --git a/test/unit/query_test.rb b/test/unit/query_test.rb index 70141a87e4..5ed2b11260 100644 --- a/test/unit/query_test.rb +++ b/test/unit/query_test.rb @@ -108,6 +108,24 @@ class QueryTest < ActiveSupport::TestCase assert !project_ids.include?("2") # private project user cannot see end + def test_trackers_without_display_subprojects_issues_should_not_display_subproject_trackers + User.current = User.find(2) + project = Project.find(2) + project.tracker_ids = [1] + project.save! + # generate sub project + Project.generate_with_parent!(project, {:tracker_ids => [2, 3]}) + + with_settings :display_subprojects_issues => '0' do + query = IssueQuery.new(:project => project, :name => '_') + assert_equal [1], query.trackers.collect(&:id).sort + end + with_settings :display_subprojects_issues => '1' do + query = IssueQuery.new(:project => project, :name => '_') + assert_equal [1, 2, 3], query.trackers.collect(&:id).sort + end + end + def test_available_filters_should_not_include_fields_disabled_on_all_trackers Tracker.all.each do |tracker| tracker.core_fields = Tracker::CORE_FIELDS - ['start_date']