diff options
| author | Malcolm Tredinnick <malcolm.tredinnick@gmail.com> | 2007-07-19 09:24:36 +0000 |
|---|---|---|
| committer | Malcolm Tredinnick <malcolm.tredinnick@gmail.com> | 2007-07-19 09:24:36 +0000 |
| commit | f5ef3bec6868cc4e04f2a7816821a44ec104c923 (patch) | |
| tree | 3b91541738b07cdfd12cdfc23f5b4e6135c48670 | |
| parent | 9ff1060391201b6b8e9452ad98b1a66ac21527c7 (diff) | |
Fixed #3925 -- Added Slovak localflavor items. Thanks, Martin Kosír.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@5724 bcc190cf-cafb-0310-a4f2-bffc1f526a37
| -rw-r--r-- | django/contrib/localflavor/sk/__init__.py | 0 | ||||
| -rw-r--r-- | django/contrib/localflavor/sk/forms.py | 41 | ||||
| -rw-r--r-- | django/contrib/localflavor/sk/sk_districts.py | 87 | ||||
| -rw-r--r-- | django/contrib/localflavor/sk/sk_regions.py | 16 | ||||
| -rw-r--r-- | tests/regressiontests/forms/localflavor.py | 27 |
5 files changed, 171 insertions, 0 deletions
diff --git a/django/contrib/localflavor/sk/__init__.py b/django/contrib/localflavor/sk/__init__.py new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/django/contrib/localflavor/sk/__init__.py diff --git a/django/contrib/localflavor/sk/forms.py b/django/contrib/localflavor/sk/forms.py new file mode 100644 index 0000000000..0aa000a0a5 --- /dev/null +++ b/django/contrib/localflavor/sk/forms.py @@ -0,0 +1,41 @@ +""" +Slovak-specific form helpers +""" + +from django.newforms.fields import Select, RegexField +from django.utils.translation import ugettext + +class SKRegionSelect(Select): + """ + A select widget widget with list of Slovak regions as choices. + """ + def __init__(self, attrs=None): + from sk_regions import REGION_CHOICES + super(SKRegionSelect, self).__init__(attrs, choices=REGION_CHOICES) + +class SKDistrictSelect(Select): + """ + A select widget with list of Slovak districts as choices. + """ + def __init__(self, attrs=None): + from sk_districts import DISTRICT_CHOICES + super(SKDistrictSelect, self).__init__(attrs, choices=DISTRICT_CHOICES) + +class SKPostalCodeField(RegexField): + """ + A form field that validates its input as Slovak postal code. + Valid form is XXXXX or XXX XX, where X represents integer. + """ + def __init__(self, *args, **kwargs): + super(SKPostalCodeField, self).__init__(r'^\d{5}$|^\d{3} \d{2}$', + max_length=None, min_length=None, + error_message=ugettext(u'Enter a postal code in the format XXXXX or XXX XX.'), + *args, **kwargs) + + def clean(self, value): + """ + Validates the input and returns a string that contains only numbers. + Returns an empty string for empty values. + """ + v = super(SKPostalCodeField, self).clean(value) + return v.replace(' ', '') diff --git a/django/contrib/localflavor/sk/sk_districts.py b/django/contrib/localflavor/sk/sk_districts.py new file mode 100644 index 0000000000..95e87967b9 --- /dev/null +++ b/django/contrib/localflavor/sk/sk_districts.py @@ -0,0 +1,87 @@ +""" +Slovak districts according to http://sk.wikipedia.org/wiki/Administrat%C3%ADvne_%C4%8Dlenenie_Slovenska +""" + +from django.utils.translation import ugettext_lazy as _ + +DISTRICT_CHOICES = ( + ('BB', _('Banska Bystrica')), + ('BS', _('Banska Stiavnica')), + ('BJ', _('Bardejov')), + ('BN', _('Banovce nad Bebravou')), + ('BR', _('Brezno')), + ('BA1', _('Bratislava I')), + ('BA2', _('Bratislava II')), + ('BA3', _('Bratislava III')), + ('BA4', _('Bratislava IV')), + ('BA5', _('Bratislava V')), + ('BY', _('Bytca')), + ('CA', _('Cadca')), + ('DT', _('Detva')), + ('DK', _('Dolny Kubin')), + ('DS', _('Dunajska Streda')), + ('GA', _('Galanta')), + ('GL', _('Gelnica')), + ('HC', _('Hlohovec')), + ('HE', _('Humenne')), + ('IL', _('Ilava')), + ('KK', _('Kezmarok')), + ('KN', _('Komarno')), + ('KE1', _('Kosice I')), + ('KE2', _('Kosice II')), + ('KE3', _('Kosice III')), + ('KE4', _('Kosice IV')), + ('KEO', _('Kosice - okolie')), + ('KA', _('Krupina')), + ('KM', _('Kysucke Nove Mesto')), + ('LV', _('Levice')), + ('LE', _('Levoca')), + ('LM', _('Liptovsky Mikulas')), + ('LC', _('Lucenec')), + ('MA', _('Malacky')), + ('MT', _('Martin')), + ('ML', _('Medzilaborce')), + ('MI', _('Michalovce')), + ('MY', _('Myjava')), + ('NO', _('Namestovo')), + ('NR', _('Nitra')), + ('NM', _('Nove Mesto nad Vahom')), + ('NZ', _('Nove Zamky')), + ('PE', _('Partizanske')), + ('PK', _('Pezinok')), + ('PN', _('Piestany')), + ('PT', _('Poltar')), + ('PP', _('Poprad')), + ('PB', _('Povazska Bystrica')), + ('PO', _('Presov')), + ('PD', _('Prievidza')), + ('PU', _('Puchov')), + ('RA', _('Revuca')), + ('RS', _('Rimavska Sobota')), + ('RV', _('Roznava')), + ('RK', _('Ruzomberok')), + ('SB', _('Sabinov')), + ('SC', _('Senec')), + ('SE', _('Senica')), + ('SI', _('Skalica')), + ('SV', _('Snina')), + ('SO', _('Sobrance')), + ('SN', _('Spisska Nova Ves')), + ('SL', _('Stara Lubovna')), + ('SP', _('Stropkov')), + ('SK', _('Svidnik')), + ('SA', _('Sala')), + ('TO', _('Topolcany')), + ('TV', _('Trebisov')), + ('TN', _('Trencin')), + ('TT', _('Trnava')), + ('TR', _('Turcianske Teplice')), + ('TS', _('Tvrdosin')), + ('VK', _('Velky Krtis')), + ('VT', _('Vranov nad Toplou')), + ('ZM', _('Zlate Moravce')), + ('ZV', _('Zvolen')), + ('ZC', _('Zarnovica')), + ('ZH', _('Ziar nad Hronom')), + ('ZA', _('Zilina')), +) diff --git a/django/contrib/localflavor/sk/sk_regions.py b/django/contrib/localflavor/sk/sk_regions.py new file mode 100644 index 0000000000..66de814e01 --- /dev/null +++ b/django/contrib/localflavor/sk/sk_regions.py @@ -0,0 +1,16 @@ +""" +Slovak regions according to http://sk.wikipedia.org/wiki/Administrat%C3%ADvne_%C4%8Dlenenie_Slovenska +""" + +from django.utils.translation import ugettext_lazy as _ + +REGION_CHOICES = ( + ('BB', _('Banska Bystrica region')), + ('BA', _('Bratislava region')), + ('KE', _('Kosice region')), + ('NR', _('Nitra region')), + ('PO', _('Presov region')), + ('TN', _('Trencin region')), + ('TT', _('Trnava region')), + ('ZA', _('Zilina region')), +) diff --git a/tests/regressiontests/forms/localflavor.py b/tests/regressiontests/forms/localflavor.py index 8cb096bd20..132a61c30d 100644 --- a/tests/regressiontests/forms/localflavor.py +++ b/tests/regressiontests/forms/localflavor.py @@ -1363,5 +1363,32 @@ ValidationError: [u'Enter valid a Chilean RUT. The format is XX.XXX.XXX-X.'] >>> f.render('foo', 'bar') u'<select name="foo">\n<option value="RM">Regi\xf3n Metropolitana de Santiago</option>\n<option value="I">Regi\xf3n de Tarapac\xe1</option>\n<option value="II">Regi\xf3n de Antofagasta</option>\n<option value="III">Regi\xf3n de Atacama</option>\n<option value="IV">Regi\xf3n de Coquimbo</option>\n<option value="V">Regi\xf3n de Valpara\xedso</option>\n<option value="VI">Regi\xf3n del Libertador Bernardo O'Higgins</option>\n<option value="VII">Regi\xf3n del Maule</option>\n<option value="VIII">Regi\xf3n del B\xedo B\xedo</option>\n<option value="IX">Regi\xf3n de la Araucan\xeda</option>\n<option value="X">Regi\xf3n de los Lagos</option>\n<option value="XI">Regi\xf3n de Ays\xe9n del General Carlos Ib\xe1\xf1ez del Campo</option>\n<option value="XII">Regi\xf3n de Magallanes y la Ant\xe1rtica Chilena</option>\n<option value="XIV">Regi\xf3n de Los R\xedos</option>\n<option value="XV">Regi\xf3n de Arica-Parinacota</option>\n</select>' +# SKPostalCodeField ######################################################### + +>>> from django.contrib.localflavor.sk.forms import SKPostalCodeField +>>> f = SKPostalCodeField() +>>> f.clean('84545x') +Traceback (most recent call last): +... +ValidationError: [u'Enter a postal code in the format XXXXX or XXX XX.'] +>>> f.clean('91909') +u'91909' +>>> f.clean('917 01') +u'91701' + +# SKRegionSelect ############################################################ + +>>> from django.contrib.localflavor.sk.forms import SKRegionSelect +>>> w = SKRegionSelect() +>>> w.render('regions', 'TT') +u'<select name="regions">\n<option value="BB">Banska Bystrica region</option>\n<option value="BA">Bratislava region</option>\n<option value="KE">Kosice region</option>\n<option value="NR">Nitra region</option>\n<option value="PO">Presov region</option>\n<option value="TN">Trencin region</option>\n<option value="TT" selected="selected">Trnava region</option>\n<option value="ZA">Zilina region</option>\n</select>' + +# SKDistrictSelect ########################################################## + +>>> from django.contrib.localflavor.sk.forms import SKDistrictSelect +>>> w = SKDistrictSelect() +>>> w.render('Districts', 'RK') +u'<select name="Districts">\n<option value="BB">Banska Bystrica</option>\n<option value="BS">Banska Stiavnica</option>\n<option value="BJ">Bardejov</option>\n<option value="BN">Banovce nad Bebravou</option>\n<option value="BR">Brezno</option>\n<option value="BA1">Bratislava I</option>\n<option value="BA2">Bratislava II</option>\n<option value="BA3">Bratislava III</option>\n<option value="BA4">Bratislava IV</option>\n<option value="BA5">Bratislava V</option>\n<option value="BY">Bytca</option>\n<option value="CA">Cadca</option>\n<option value="DT">Detva</option>\n<option value="DK">Dolny Kubin</option>\n<option value="DS">Dunajska Streda</option>\n<option value="GA">Galanta</option>\n<option value="GL">Gelnica</option>\n<option value="HC">Hlohovec</option>\n<option value="HE">Humenne</option>\n<option value="IL">Ilava</option>\n<option value="KK">Kezmarok</option>\n<option value="KN">Komarno</option>\n<option value="KE1">Kosice I</option>\n<option value="KE2">Kosice II</option>\n<option value="KE3">Kosice III</option>\n<option value="KE4">Kosice IV</option>\n<option value="KEO">Kosice - okolie</option>\n<option value="KA">Krupina</option>\n<option value="KM">Kysucke Nove Mesto</option>\n<option value="LV">Levice</option>\n<option value="LE">Levoca</option>\n<option value="LM">Liptovsky Mikulas</option>\n<option value="LC">Lucenec</option>\n<option value="MA">Malacky</option>\n<option value="MT">Martin</option>\n<option value="ML">Medzilaborce</option>\n<option value="MI">Michalovce</option>\n<option value="MY">Myjava</option>\n<option value="NO">Namestovo</option>\n<option value="NR">Nitra</option>\n<option value="NM">Nove Mesto nad Vahom</option>\n<option value="NZ">Nove Zamky</option>\n<option value="PE">Partizanske</option>\n<option value="PK">Pezinok</option>\n<option value="PN">Piestany</option>\n<option value="PT">Poltar</option>\n<option value="PP">Poprad</option>\n<option value="PB">Povazska Bystrica</option>\n<option value="PO">Presov</option>\n<option value="PD">Prievidza</option>\n<option value="PU">Puchov</option>\n<option value="RA">Revuca</option>\n<option value="RS">Rimavska Sobota</option>\n<option value="RV">Roznava</option>\n<option value="RK" selected="selected">Ruzomberok</option>\n<option value="SB">Sabinov</option>\n<option value="SC">Senec</option>\n<option value="SE">Senica</option>\n<option value="SI">Skalica</option>\n<option value="SV">Snina</option>\n<option value="SO">Sobrance</option>\n<option value="SN">Spisska Nova Ves</option>\n<option value="SL">Stara Lubovna</option>\n<option value="SP">Stropkov</option>\n<option value="SK">Svidnik</option>\n<option value="SA">Sala</option>\n<option value="TO">Topolcany</option>\n<option value="TV">Trebisov</option>\n<option value="TN">Trencin</option>\n<option value="TT">Trnava</option>\n<option value="TR">Turcianske Teplice</option>\n<option value="TS">Tvrdosin</option>\n<option value="VK">Velky Krtis</option>\n<option value="VT">Vranov nad Toplou</option>\n<option value="ZM">Zlate Moravce</option>\n<option value="ZV">Zvolen</option>\n<option value="ZC">Zarnovica</option>\n<option value="ZH">Ziar nad Hronom</option>\n<option value="ZA">Zilina</option>\n</select>' + """ |
