refactor(departements): champ departements to use simple select

This commit is contained in:
Paul Chavard 2022-12-20 21:29:18 +01:00
parent f7c1dff22a
commit e0b0a42bc3
5 changed files with 115 additions and 19 deletions

View file

@ -21,4 +21,44 @@
# type_de_champ_id :integer
#
class Champs::DepartementChamp < Champs::TextChamp
def to_s
formatted_value
end
def for_tag
formatted_value
end
def selected
code
end
def code
external_id || APIGeoService.departement_code(name)
end
def name
maybe_code_and_name = value&.match(/(\d+) - (.+)/)
if maybe_code_and_name
maybe_code_and_name[2]
else
value
end
end
def value=(code)
if code&.size == 2
self.external_id = code
super(APIGeoService.departement_name(code))
elsif code.blank?
self.external_id = nil
super(nil)
end
end
private
def formatted_value
blank? ? "" : "#{code} #{name}"
end
end