mirror of
https://github.com/meineerde/redmine.git
synced 2026-01-31 19:47:14 +00:00
Change the behavior of the "Any searchable text" filter from OR search to AND search (#38402).
Patch by Go MAEDA. git-svn-id: https://svn.redmine.org/redmine/trunk@22169 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
27b8f57fd8
commit
972e51bc89
@ -792,7 +792,7 @@ class IssueQuery < Query
|
||||
end
|
||||
|
||||
fetcher = Redmine::Search::Fetcher.new(
|
||||
question, User.current, ['issue'], projects, attachments: '0'
|
||||
question, User.current, ['issue'], projects, all_words: (operator != '!~'), attachments: '0'
|
||||
)
|
||||
ids = fetcher.result_ids.map(&:last)
|
||||
if ids.present?
|
||||
|
||||
@ -859,6 +859,41 @@ class QueryTest < ActiveSupport::TestCase
|
||||
assert_equal [1, 2, 3], result.map(&:id).sort
|
||||
end
|
||||
|
||||
def test_filter_any_searchable_with_multiple_words
|
||||
User.current = User.find(1)
|
||||
query = IssueQuery.new(
|
||||
:name => '_',
|
||||
:filters => {
|
||||
'any_searchable' => {
|
||||
:operator => '~',
|
||||
:values => ['recipe categories']
|
||||
}
|
||||
}
|
||||
)
|
||||
result = find_issues_with_query(query)
|
||||
assert_equal [2], result.map(&:id)
|
||||
end
|
||||
|
||||
def test_filter_any_searchable_with_multiple_words_negative
|
||||
User.current = User.find(1)
|
||||
|
||||
query_result_ids = ->(op, value) do
|
||||
query = IssueQuery.new(
|
||||
:name => '_',
|
||||
:filters => {'any_searchable' => {:operator => op, :values => [value]}}
|
||||
)
|
||||
find_issues_with_query(query).map(&:id).sort
|
||||
end
|
||||
|
||||
ids = query_result_ids.call('!~', 'recipe categories')
|
||||
ids_word1 = query_result_ids.call('~', 'recipe')
|
||||
ids_word2 = query_result_ids.call('~', 'categories')
|
||||
|
||||
# Neither "recipe" nor "categories" are in the subject, description,
|
||||
# notes, etc.
|
||||
assert ids, Issue.ids.sort - ids_word1 - ids_word2
|
||||
end
|
||||
|
||||
def test_filter_any_searchable_no_matches
|
||||
User.current = User.find(1)
|
||||
query = IssueQuery.new(
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user