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