demarches-normaliennes/app/components/editable_champ/epci_component.rb

37 lines
968 B
Ruby
Raw Normal View History

# frozen_string_literal: true
2023-01-19 09:43:19 +01:00
class EditableChamp::EpciComponent < EditableChamp::EditableChampBaseComponent
include ApplicationHelper
def dsfr_champ_container
:fieldset
end
2023-01-19 09:43:19 +01:00
private
def departement_options
APIGeoService.departements.filter(&method(:departement_with_epci?)).map { ["#{_1[:code]} #{_1[:name]}", _1[:code]] }
2023-01-19 09:43:19 +01:00
end
def epci_options
if @champ.departement?
APIGeoService.epcis(@champ.code_departement).map { ["#{_1[:code]} #{_1[:name]}", _1[:code]] }
else
[]
end
end
def departement_select_options
{ selected: @champ.code_departement }.merge(@champ.mandatory? ? { prompt: '' } : { include_blank: '' })
end
def epci_select_options
{ selected: @champ.code }.merge(@champ.mandatory? ? { prompt: '' } : { include_blank: '' })
end
def departement_with_epci?(departement)
code = departement[:code]
!code.start_with?('98') && !code.in?(['99', '975', '977', '978'])
end
2023-01-19 09:43:19 +01:00
end