" AND CAST(CASE value WHEN '' THEN '0' ELSE value END AS decimal(30,0)) IN (" +
" SELECT customized_id FROM #{CustomValue.table_name}" +
" WHERE customized_type='#{target_class}' AND custom_field_id=#{chained_custom_field_id}" +
- " AND #{sql_for_field(field, operator, value, CustomValue.table_name, 'value')}))"
+ " AND #{sql_for_field(field, operator, value, CustomValue.table_name, 'value', true)}))"
end
assert_equal issue1, result.first
end
+ def test_filter_on_chained_user_custom_field_of_type_float
+ user_cf = UserCustomField.find(5)
+ user_cf.update! is_filter: true
+
+ issue_cf = IssueCustomField.create!(:field_format => 'user', :is_for_all => true, :is_filter => true, :name => 'User custom field', :tracker_ids => [1])
+ issue1 = Issue.create!(:project_id => 1, :tracker_id => 1, :custom_field_values => {issue_cf.id.to_s => '2'}, :subject => 'Test', :author_id => 1)
+ query = IssueQuery.new(:name => '_', :project => Project.find(1))
+ query.filters = {"cf_#{issue_cf.id}.cf_#{user_cf.id}" => {:operator => '=', :values => ["30.1"]}}
+
+ assert query.issues
+ end
+
def test_filter_on_me_by_anonymous_user
User.current = nil
query =