diff --git a/app/models/columns/linked_drop_down_column.rb b/app/models/columns/linked_drop_down_column.rb index bab15cd68..5492d3c70 100644 --- a/app/models/columns/linked_drop_down_column.rb +++ b/app/models/columns/linked_drop_down_column.rb @@ -1,9 +1,15 @@ # frozen_string_literal: true -class Columns::LinkedDropDownColumn < Column - def column - return super if default_column? - "#{@column}->#{value_column}" # override column otherwise json path facets will have same id as other +class Columns::LinkedDropDownColumn < Columns::ChampColumn + def initialize(procedure_id:, label:, stable_id:, value_column:, displayable:, type: :text) + super( + procedure_id:, + label:, + stable_id:, + displayable:, + type:, + value_column: + ) end def filtered_ids(dossiers, values) @@ -14,6 +20,14 @@ class Columns::LinkedDropDownColumn < Column private + def column_id + if value_column == :value + "type_de_champ/#{stable_id}" + else + "type_de_champ/#{stable_id}->#{path}" + end + end + def typed_value(champ) return nil if default_column? diff --git a/app/models/types_de_champ/linked_drop_down_list_type_de_champ.rb b/app/models/types_de_champ/linked_drop_down_list_type_de_champ.rb index 577936c9b..dc291c2c2 100644 --- a/app/models/types_de_champ/linked_drop_down_list_type_de_champ.rb +++ b/app/models/types_de_champ/linked_drop_down_list_type_de_champ.rb @@ -75,17 +75,15 @@ class TypesDeChamp::LinkedDropDownListTypeDeChamp < TypesDeChamp::TypeDeChampBas [ Columns::LinkedDropDownColumn.new( procedure_id:, - table: Column::TYPE_DE_CHAMP_TABLE, - column: stable_id.to_s, label: libelle_with_prefix(prefix), + stable_id: stable_id, type: :text, value_column: :value, displayable: ), Columns::LinkedDropDownColumn.new( procedure_id:, - table: Column::TYPE_DE_CHAMP_TABLE, - column: stable_id.to_s, + stable_id:, label: "#{libelle_with_prefix(prefix)} (Primaire)", type: :enum, value_column: :primary, @@ -93,8 +91,7 @@ class TypesDeChamp::LinkedDropDownListTypeDeChamp < TypesDeChamp::TypeDeChampBas ), Columns::LinkedDropDownColumn.new( procedure_id:, - table: Column::TYPE_DE_CHAMP_TABLE, - column: stable_id.to_s, + stable_id:, label: "#{libelle_with_prefix(prefix)} (Secondaire)", type: :enum, value_column: :secondary,