fix: filter with a text instead of a integer does not crash
This commit is contained in:
parent
99184d3d2b
commit
6516533083
2 changed files with 8 additions and 0 deletions
|
@ -90,6 +90,8 @@ class DossierFilterService
|
|||
dossiers.joins(:corrections).where(corrections: DossierCorrection.pending)
|
||||
elsif filtered_column.column == "state" && values.include?("en_construction")
|
||||
dossiers.where("dossiers.#{column} IN (?)", values).includes(:corrections).where.not(corrections: DossierCorrection.pending)
|
||||
elsif filtered_column.type == :integer
|
||||
dossiers.where("dossiers.#{column} IN (?)", values.filter_map { Integer(_1) rescue nil })
|
||||
else
|
||||
dossiers.where("dossiers.#{column} IN (?)", values)
|
||||
end
|
||||
|
|
|
@ -766,5 +766,11 @@ describe DossierFilterService do
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'with a buggy filter, for instance a text in a integer column' do
|
||||
let(:filter) { ['Nº dossier', 'buggy'] }
|
||||
|
||||
it { is_expected.to be_empty }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue