refactor(pays): champ pays to use simple select

This commit is contained in:
Paul Chavard 2022-12-20 21:28:42 +01:00
parent 4d4c378724
commit f7c1dff22a
5 changed files with 120 additions and 37 deletions

View file

@ -21,19 +21,42 @@
# type_de_champ_id :integer
#
class Champs::PaysChamp < Champs::TextChamp
def localized_value
def to_s
formatted_value
end
def for_tag
formatted_value
end
def selected
code || value
end
def value=(code)
if code&.size == 2
self.external_id = code
super(APIGeoService.country_name(code, locale: 'FR'))
elsif code.blank?
self.external_id = nil
super(nil)
elsif code != value
self.external_id = APIGeoService.country_code(code)
super(code)
end
end
def code
external_id || APIGeoService.country_code(value)
end
private
def formatted_value
if external_id
CountriesService.get(I18n.locale)[external_id].to_s
APIGeoService.country_name(external_id)
else
value.present? ? value.to_s : ''
end
end
def to_s
localized_value
end
def for_tag
localized_value
end
end