summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2010-02-10 21:42:32 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2010-02-10 21:42:32 +0000
commit2c8a24092b60802da700ad33deb3e201bbb6658e (patch)
tree43eb3cc9f867044789ff408fb8ebc313969bba37
parent1fec53cc25ec30d6a397384dfae56557c62db774 (diff)
downloadredmine-2c8a24092b60802da700ad33deb3e201bbb6658e.tar.gz
redmine-2c8a24092b60802da700ad33deb3e201bbb6658e.zip
Adds filter for system shared versions on the cross project issue list (#4792).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3409 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/models/query.rb4
-rw-r--r--test/unit/query_test.rb7
2 files changed, 11 insertions, 0 deletions
diff --git a/app/models/query.rb b/app/models/query.rb
index 788f34e40..b54d94237 100644
--- a/app/models/query.rb
+++ b/app/models/query.rb
@@ -210,6 +210,10 @@ class Query < ActiveRecord::Base
add_custom_fields_filters(@project.all_issue_custom_fields)
else
# global filters for cross project issue list
+ system_shared_versions = Version.visible.find_all_by_sharing('system')
+ unless system_shared_versions.empty?
+ @available_filters["fixed_version_id"] = { :type => :list_optional, :order => 7, :values => system_shared_versions.sort.collect{|s| ["#{s.project.name} - #{s.name}", s.id.to_s] } }
+ end
add_custom_fields_filters(IssueCustomField.find(:all, :conditions => {:is_filter => true, :is_for_all => true}))
end
@available_filters
diff --git a/test/unit/query_test.rb b/test/unit/query_test.rb
index 20447473b..26cba2a5e 100644
--- a/test/unit/query_test.rb
+++ b/test/unit/query_test.rb
@@ -26,6 +26,13 @@ class QueryTest < ActiveSupport::TestCase
assert !query.available_filters.has_key?('cf_3')
end
+ def test_system_shared_versions_should_be_available_in_global_queries
+ Version.find(2).update_attribute :sharing, 'system'
+ query = Query.new(:project => nil, :name => '_')
+ assert query.available_filters.has_key?('fixed_version_id')
+ assert query.available_filters['fixed_version_id'][:values].detect {|v| v.last == '2'}
+ end
+
def find_issues_with_query(query)
Issue.find :all,
:include => [ :assigned_to, :status, :tracker, :project, :priority ],