fix: make filter works on multiple_drop_down_list
This commit is contained in:
parent
5522efc3e5
commit
4059bfdc11
5 changed files with 53 additions and 2 deletions
|
@ -39,5 +39,11 @@ module DossierFilteringConcern
|
|||
q = Array.new(values.count, "(#{table_column} = ?)").join(' OR ')
|
||||
where(q, *(values))
|
||||
}
|
||||
|
||||
scope :filter_array_enum, lambda { |table, column, values|
|
||||
table_column = DossierFilterService.sanitized_column(table, column)
|
||||
q = Array.new(values.count, "(#{table_column} = ?)").join(' OR ')
|
||||
where(q, *(values. map { |value| "[\"#{value}\"]" }))
|
||||
}
|
||||
end
|
||||
end
|
||||
|
|
|
@ -532,7 +532,9 @@ class TypeDeChamp < ApplicationRecord
|
|||
end
|
||||
|
||||
def self.filter_hash_type(type_champ)
|
||||
if is_choice_type_from(type_champ)
|
||||
if type_champ == 'multiple_drop_down_list'
|
||||
:enums
|
||||
elsif is_choice_type_from(type_champ)
|
||||
:enum
|
||||
else
|
||||
:text
|
||||
|
|
|
@ -92,6 +92,9 @@ class DossierFilterService
|
|||
if filtered_column.type == :enum
|
||||
dossiers.with_type_de_champ(column)
|
||||
.filter_enum(:champs, value_column, values)
|
||||
elsif filtered_column.type == :enums
|
||||
dossiers.with_type_de_champ(column)
|
||||
.filter_array_enum(:champs, value_column, values)
|
||||
else
|
||||
dossiers.with_type_de_champ(column)
|
||||
.filter_ilike(:champs, value_column, values)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue