feat(conditional): can condition on commune champ value

This commit is contained in:
Eric Leroy-Terquem 2023-10-17 11:27:36 +02:00
parent 422a22e14b
commit ab0bb456bc
2 changed files with 18 additions and 4 deletions

View file

@ -6,6 +6,7 @@ class Logic::ChampValue < Logic::Term
:decimal_number,
:drop_down_list,
:multiple_drop_down_list,
:communes,
:epci,
:departements,
:regions
@ -64,10 +65,11 @@ class Logic::ChampValue < Logic::Term
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(:communes),
MANAGED_TYPE_DE_CHAMP.fetch(:epci),
MANAGED_TYPE_DE_CHAMP.fetch(:departements),
MANAGED_TYPE_DE_CHAMP.fetch(:regions),
MANAGED_TYPE_DE_CHAMP.fetch(:epci)
CHAMP_VALUE_TYPE.fetch(:enum)
MANAGED_TYPE_DE_CHAMP.fetch(:regions)
CHAMP_VALUE_TYPE.fetch(:enum)
when MANAGED_TYPE_DE_CHAMP.fetch(:multiple_drop_down_list)
CHAMP_VALUE_TYPE.fetch(:enums)
else
@ -102,7 +104,7 @@ class Logic::ChampValue < Logic::Term
tdc = type_de_champ(type_de_champs)
case tdc.type_champ
when MANAGED_TYPE_DE_CHAMP.fetch(:departements), MANAGED_TYPE_DE_CHAMP.fetch(:epci)
when MANAGED_TYPE_DE_CHAMP.fetch(:communes), MANAGED_TYPE_DE_CHAMP.fetch(:epci), MANAGED_TYPE_DE_CHAMP.fetch(:departements)
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]] }

View file

@ -81,6 +81,18 @@ describe TypesDeChampEditor::ConditionsComponent, type: :component do
end
end
context 'communes' do
let(:communes) { create(:type_de_champ_communes) }
let(:upper_tdcs) { [communes] }
let(:condition) { empty_operator(champ_value(communes.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 'epcis' do
let(:epcis) { create(:type_de_champ_epci) }
let(:upper_tdcs) { [epcis] }