Change country field from text input to select field

This commit is contained in:
Christophe Boulanger 2016-08-25 16:11:29 +02:00
parent 0df185f301
commit 40b08339ae
1 changed files with 5 additions and 4 deletions

View File

@ -21,7 +21,7 @@ from django import forms
from django.conf import settings
from django.utils.translation import ugettext_lazy as _
import re
import requests
class NrnField(forms.CharField):
def validate(self, value):
@ -89,7 +89,7 @@ class StreetField(forms.CharField):
widget = StreetWidget
class CountryWidget(forms.TextInput):
class CountryWidget(forms.Select):
class Media:
css = {'all': ('xstatic/themes/smoothness/jquery-ui.css',)}
js = ('xstatic/jquery-ui.js',
@ -104,12 +104,13 @@ class CountryWidget(forms.TextInput):
else:
passerelle_url = settings.KNOWN_SERVICES['passerelle'].values()[0]['url']
country_url = '%s/csvdatasource/pays/data' % passerelle_url
attrs['data-autocomplete-url'] = country_url
super(forms.TextInput, self).__init__(attrs=attrs)
self.choices = [(x['id'], x['text']) for x in requests.get(country_url).json()['data']]
super(forms.Select, self).__init__(attrs=attrs)
class CountryField(forms.CharField):
widget = CountryWidget
choices = []
class NumHouseField(forms.CharField):