Filtering error

This commit is contained in:
karel.picman@lbcfree.net 2021-03-17 14:19:43 +01:00
parent b13042effb
commit 65cd5e2b1d
2 changed files with 8 additions and 9 deletions

View File

@ -189,14 +189,13 @@ module DmsfQueriesHelper
end
def filter_any?
# :v - standard filters
# :op - custom fields filters
[:v, :op].each do |p|
if params[p]
params[p].each do |filter|
return true if (filter.size > 1) && filter[1].all?{ |v| v.present? }
end
# :v - value, :op - operator
size = params[:op]&.keys&.size
if size
if (size == 1) && params[:op].has_key?('title') && params[:op]['title'] == '~' && params[:v]['title'].join.empty?
return false
end
return true
end
false
end

View File

@ -112,7 +112,7 @@ class DmsfQuery < Query
filters_clauses = []
filters.each_key do |field|
v = values_for(field).clone
next unless v and !v.empty?
next unless v && !v.empty?
operator = operator_for(field)
case field
when 'author'
@ -120,7 +120,7 @@ class DmsfQuery < Query
v.push User.current.id.to_s
end
when 'title'
next if v.include?('')
next if (operator == '~') && v.join.empty?
end
filters_clauses << '(' + sql_for_field(field, operator, v, queried_table_name, field) + ')'
end