diff --git a/app/models/logic/champ_value.rb b/app/models/logic/champ_value.rb index 77068f8bd..37ed167ca 100644 --- a/app/models/logic/champ_value.rb +++ b/app/models/logic/champ_value.rb @@ -6,6 +6,7 @@ class Logic::ChampValue < Logic::Term :decimal_number, :drop_down_list, :multiple_drop_down_list, + :epci, :departements, :regions ) @@ -62,8 +63,11 @@ class Logic::ChampValue < Logic::Term CHAMP_VALUE_TYPE.fetch(:boolean) when MANAGED_TYPE_DE_CHAMP.fetch(:integer_number), MANAGED_TYPE_DE_CHAMP.fetch(:decimal_number) CHAMP_VALUE_TYPE.fetch(:number) - when MANAGED_TYPE_DE_CHAMP.fetch(:drop_down_list),MANAGED_TYPE_DE_CHAMP.fetch(:departements), MANAGED_TYPE_DE_CHAMP.fetch(:regions) - CHAMP_VALUE_TYPE.fetch(:enum) + when MANAGED_TYPE_DE_CHAMP.fetch(:drop_down_list), + MANAGED_TYPE_DE_CHAMP.fetch(:departements), + MANAGED_TYPE_DE_CHAMP.fetch(:regions), + MANAGED_TYPE_DE_CHAMP.fetch(:epci) + CHAMP_VALUE_TYPE.fetch(:enum) when MANAGED_TYPE_DE_CHAMP.fetch(:multiple_drop_down_list) CHAMP_VALUE_TYPE.fetch(:enums) else @@ -98,7 +102,7 @@ class Logic::ChampValue < Logic::Term tdc = type_de_champ(type_de_champs) case tdc.type_champ - when MANAGED_TYPE_DE_CHAMP.fetch(:departements) + when MANAGED_TYPE_DE_CHAMP.fetch(:departements), MANAGED_TYPE_DE_CHAMP.fetch(:epci) APIGeoService.departements.map { ["#{_1[:code]} – #{_1[:name]}", _1[:code]] } when MANAGED_TYPE_DE_CHAMP.fetch(:regions) APIGeoService.regions.map { ["#{_1[:code]} – #{_1[:name]}", _1[:code]] } diff --git a/spec/components/types_de_champ_editor/conditions_component_spec.rb b/spec/components/types_de_champ_editor/conditions_component_spec.rb index 6d86b7c0b..be2e1d2e2 100644 --- a/spec/components/types_de_champ_editor/conditions_component_spec.rb +++ b/spec/components/types_de_champ_editor/conditions_component_spec.rb @@ -81,6 +81,18 @@ describe TypesDeChampEditor::ConditionsComponent, type: :component do end end + context 'epcis' do + let(:epcis) { create(:type_de_champ_epci) } + let(:upper_tdcs) { [epcis] } + let(:condition) { empty_operator(champ_value(epcis.stable_id), constant(true)) } + let(:departement_options) { APIGeoService.departements.map { "#{_1[:code]} – #{_1[:name]}" } } + + it do + expect(page).to have_select('type_de_champ[condition_form][rows][][operator_name]', with_options: ['Est']) + expect(page).to have_select('type_de_champ[condition_form][rows][][value]', options: (['Sélectionner'] + departement_options)) + end + end + context 'departements' do let(:departements) { create(:type_de_champ_departements) } let(:upper_tdcs) { [departements] }