mirror of
https://github.com/meineerde/redmine.git
synced 2026-01-31 11:37:14 +00:00
Fix "any" operator for text filters to exclude empty text values (#39991).
Patch by Go MAEDA (@maeda). git-svn-id: https://svn.redmine.org/redmine/trunk@22583 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
06f9567415
commit
73477b41eb
@ -1276,7 +1276,7 @@ class Query < ActiveRecord::Base
|
||||
sql += " OR #{db_table}.#{db_field} = ''" if is_custom_filter || [:text, :string].include?(type_for(field))
|
||||
when "*"
|
||||
sql = "#{db_table}.#{db_field} IS NOT NULL"
|
||||
sql += " AND #{db_table}.#{db_field} <> ''" if is_custom_filter
|
||||
sql += " AND #{db_table}.#{db_field} <> ''" if is_custom_filter || [:text, :string].include?(type_for(field))
|
||||
when ">="
|
||||
if [:date, :date_past].include?(type_for(field))
|
||||
sql = date_clause(db_table, db_field, parse_date(value.first), nil, is_custom_filter)
|
||||
|
||||
@ -214,7 +214,7 @@ class QueryTest < ActiveSupport::TestCase
|
||||
assert issues.all? {|i| i.custom_field_value(2).blank?}
|
||||
end
|
||||
|
||||
def test_operator_none_for_text
|
||||
def test_operator_none_for_blank_text
|
||||
query = IssueQuery.new(:name => '_')
|
||||
query.add_filter('status_id', '*', [''])
|
||||
query.add_filter('description', '!*', [''])
|
||||
@ -226,6 +226,19 @@ class QueryTest < ActiveSupport::TestCase
|
||||
assert_equal [11, 12], issues.map(&:id).sort
|
||||
end
|
||||
|
||||
def test_operator_any_for_blank_text
|
||||
Issue.where(id: [1, 2]).update_all(description: '')
|
||||
query = IssueQuery.new(:name => '_')
|
||||
query.add_filter('status_id', '*', [''])
|
||||
query.add_filter('description', '*', [''])
|
||||
assert query.has_filter?('description')
|
||||
issues = find_issues_with_query(query)
|
||||
|
||||
assert issues.any?
|
||||
assert issues.all? {|i| i.description.present?}
|
||||
assert_empty issues.map(&:id) & [1, 2]
|
||||
end
|
||||
|
||||
def test_operator_all
|
||||
query = IssueQuery.new(:project => Project.find(1), :name => '_')
|
||||
query.add_filter('fixed_version_id', '*', [''])
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user