diff --git a/app/models/procedure_presentation.rb b/app/models/procedure_presentation.rb index 34f194a8d..42edc7947 100644 --- a/app/models/procedure_presentation.rb +++ b/app/models/procedure_presentation.rb @@ -261,10 +261,24 @@ class ProcedurePresentation < ApplicationRecord instructeur.groupe_instructeurs .find { _1.id == filter['value'].to_i }&.label || filter['value'] else + field = find_field(filter[TABLE], filter[COLUMN]) + + if field["type"] == :date + parsed_date = safe_parse_date(filter['value']) + + return parsed_date.present? ? I18n.l(parsed_date) : nil + end + filter['value'] end end + def safe_parse_date(string) + Date.parse(string) + rescue Date::Error + nil + end + def add_filter(statut, field, value) if value.present? table, column = field.split(SLASH) diff --git a/spec/models/procedure_presentation_spec.rb b/spec/models/procedure_presentation_spec.rb index 319c38b2d..53538ed87 100644 --- a/spec/models/procedure_presentation_spec.rb +++ b/spec/models/procedure_presentation_spec.rb @@ -823,6 +823,14 @@ describe ProcedurePresentation do expect(subject).to eq("En construction") end end + + context 'when filter is a date' do + let(:filters) { { "suivis" => [{ "table" => "self", "column" => "en_instruction_at", "value" => "15/06/2023" }] } } + + it 'should get formatted value' do + expect(subject).to eq("15/06/2023") + end + end end describe "#add_filter" do