refactor(departements): champ departements to use simple select
This commit is contained in:
parent
f7c1dff22a
commit
e0b0a42bc3
5 changed files with 115 additions and 19 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue