@@ -219,6 +219,12 class Query < ActiveRecord::Base | |||
|
219 | 219 | @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] } } |
|
220 | 220 | end |
|
221 | 221 | add_custom_fields_filters(IssueCustomField.find(:all, :conditions => {:is_filter => true, :is_for_all => true})) |
|
222 | # project filter | |
|
223 | project_values = Project.all(:conditions => Project.visible_by(User.current), :order => 'lft').map do |p| | |
|
224 | pre = (p.level > 0 ? ('--' * p.level + ' ') : '') | |
|
225 | ["#{pre}#{p.name}",p.id.to_s] | |
|
226 | end | |
|
227 | @available_filters["project_id"] = { :type => :list, :order => 1, :values => project_values} | |
|
222 | 228 | end |
|
223 | 229 | @available_filters |
|
224 | 230 | end |
@@ -33,6 +33,15 class QueryTest < ActiveSupport::TestCase | |||
|
33 | 33 | assert query.available_filters['fixed_version_id'][:values].detect {|v| v.last == '2'} |
|
34 | 34 | end |
|
35 | 35 | |
|
36 | def test_project_filter_in_global_queries | |
|
37 | query = Query.new(:project => nil, :name => '_') | |
|
38 | project_filter = query.available_filters["project_id"] | |
|
39 | assert_not_nil project_filter | |
|
40 | project_ids = project_filter[:values].map{|p| p[1]} | |
|
41 | assert project_ids.include?("1") #public project | |
|
42 | assert !project_ids.include?("2") #private project user cannot see | |
|
43 | end | |
|
44 | ||
|
36 | 45 | def find_issues_with_query(query) |
|
37 | 46 | Issue.find :all, |
|
38 | 47 | :include => [ :assigned_to, :status, :tracker, :project, :priority ], |
General Comments 0
You need to be logged in to leave comments.
Login now