@@ -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