1
0
mirror of https://github.com/meineerde/redmine.git synced 2025-12-22 00:11:14 +00:00

Projects filter "Subproject of" does not work when the given value is "My projects" or "My bookmarks" (#33083).

Patch by Mizuki ISHIKAWA.


git-svn-id: http://svn.redmine.org/redmine/trunk@19559 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Go MAEDA 2020-03-04 08:26:34 +00:00
parent 82ead3074a
commit db2118fd82
2 changed files with 29 additions and 1 deletions

View File

@ -924,7 +924,7 @@ class Query < ActiveRecord::Base
end end
end end
if field == 'project_id' || (self.type == 'ProjectQuery' && field == 'id') if field == 'project_id' || (self.type == 'ProjectQuery' && (field == 'id' || field == 'parent_id'))
if v.delete('mine') if v.delete('mine')
v += User.current.memberships.map(&:project_id).map(&:to_s) v += User.current.memberships.map(&:project_id).map(&:to_s)
end end

View File

@ -939,6 +939,34 @@ class QueryTest < ActiveSupport::TestCase
assert_not_include 'bookmarks', filter[:values].map{|v| v[1]} assert_not_include 'bookmarks', filter[:values].map{|v| v[1]}
end end
def test_filter_project_parent_id_with_my_projects
User.current = User.find(1)
query = ProjectQuery.new(:name => '_')
filter = query.available_filters['parent_id']
assert_not_nil filter
assert_include 'mine', filter[:values].map{|v| v[1]}
query.filters = { 'parent_id' => {:operator => '=', :values => ['mine']}}
result = query.results_scope
my_projects = User.current.memberships.map(&:project_id)
assert_equal Project.where(parent_id: my_projects).ids, result.map(&:id).sort
end
def test_filter_project_parent_id_with_my_bookmarks
User.current = User.find(1)
query = ProjectQuery.new(:name => '_')
filter = query.available_filters['parent_id']
assert_not_nil filter
assert_include 'bookmarks', filter[:values].map{|v| v[1]}
query.filters = { 'parent_id' => {:operator => '=', :values => ['bookmarks']}}
result = query.results_scope
bookmarks = User.current.bookmarked_project_ids
assert_equal Project.where(parent_id: bookmarks).ids, result.map(&:id).sort
end
def test_filter_watched_issues def test_filter_watched_issues
User.current = User.find(1) User.current = User.find(1)
query = IssueQuery.new(:name => '_', :filters => { 'watcher_id' => {:operator => '=', :values => ['me']}}) query = IssueQuery.new(:name => '_', :filters => { 'watcher_id' => {:operator => '=', :values => ['me']}})