##// END OF EJS Templates
Include issues asigned to user's groups when using "assigned to me" filter (#2964)....
Jean-Philippe Lang -
r6212:7f77744e86e0
parent child
Show More
@@ -487,7 +487,14 class Query < ActiveRecord::Base
487
487
488 # "me" value subsitution
488 # "me" value subsitution
489 if %w(assigned_to_id author_id watcher_id).include?(field)
489 if %w(assigned_to_id author_id watcher_id).include?(field)
490 v.push(User.current.logged? ? User.current.id.to_s : "0") if v.delete("me")
490 if v.delete("me")
491 if User.current.logged?
492 v.push(User.current.id.to_s)
493 v += User.current.group_ids.map(&:to_s) if field == 'assigned_to_id'
494 else
495 v.push("0")
496 end
497 end
491 end
498 end
492
499
493 if field =~ /^cf_(\d+)$/
500 if field =~ /^cf_(\d+)$/
@@ -1,7 +1,7
1 <h3><%=l(:label_assigned_to_me_issues)%> (<%= Issue.visible.open.count(:conditions => {:assigned_to_id => User.current.id})%>)</h3>
1 <h3><%=l(:label_assigned_to_me_issues)%> (<%= Issue.visible.open.count(:conditions => {:assigned_to_id => ([User.current.id] + User.current.group_ids)})%>)</h3>
2
2
3 <% assigned_issues = Issue.visible.open.find(:all,
3 <% assigned_issues = Issue.visible.open.find(:all,
4 :conditions => {:assigned_to_id => User.current.id},
4 :conditions => {:assigned_to_id => ([User.current.id] + User.current.group_ids)},
5 :limit => 10,
5 :limit => 10,
6 :include => [ :status, :project, :tracker, :priority ],
6 :include => [ :status, :project, :tracker, :priority ],
7 :order => "#{IssuePriority.table_name}.position DESC, #{Issue.table_name}.updated_on DESC") %>
7 :order => "#{IssuePriority.table_name}.position DESC, #{Issue.table_name}.updated_on DESC") %>
@@ -336,6 +336,24 class QueryTest < ActiveSupport::TestCase
336 find_issues_with_query(query)
336 find_issues_with_query(query)
337 end
337 end
338
338
339 def test_filter_assigned_to_me
340 user = User.find(2)
341 group = Group.find(10)
342 User.current = user
343 i1 = Issue.generate!(:project_id => 1, :tracker_id => 1, :assigned_to => user)
344 i2 = Issue.generate!(:project_id => 1, :tracker_id => 1, :assigned_to => group)
345 i3 = Issue.generate!(:project_id => 1, :tracker_id => 1, :assigned_to => Group.find(11))
346 group.users << user
347
348 query = Query.new(:name => '_', :filters => { 'assigned_to_id' => {:operator => '=', :values => ['me']}})
349 result = query.issues
350 assert_equal Issue.visible.all(:conditions => {:assigned_to_id => ([2] + user.reload.group_ids)}).sort_by(&:id), result.sort_by(&:id)
351
352 assert result.include?(i1)
353 assert result.include?(i2)
354 assert !result.include?(i3)
355 end
356
339 def test_filter_watched_issues
357 def test_filter_watched_issues
340 User.current = User.find(1)
358 User.current = User.find(1)
341 query = Query.new(:name => '_', :filters => { 'watcher_id' => {:operator => '=', :values => ['me']}})
359 query = Query.new(:name => '_', :filters => { 'watcher_id' => {:operator => '=', :values => ['me']}})
General Comments 0
You need to be logged in to leave comments. Login now