@@ -487,7 +487,14 class Query < ActiveRecord::Base | |||
|
487 | 487 | |
|
488 | 488 | # "me" value subsitution |
|
489 | 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 | 498 | end |
|
492 | 499 | |
|
493 | 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 | 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 | 5 | :limit => 10, |
|
6 | 6 | :include => [ :status, :project, :tracker, :priority ], |
|
7 | 7 | :order => "#{IssuePriority.table_name}.position DESC, #{Issue.table_name}.updated_on DESC") %> |
@@ -336,6 +336,24 class QueryTest < ActiveSupport::TestCase | |||
|
336 | 336 | find_issues_with_query(query) |
|
337 | 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 | 357 | def test_filter_watched_issues |
|
340 | 358 | User.current = User.find(1) |
|
341 | 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