Skip to content

Commit

Permalink
Added areas in Kuwait.
Browse files Browse the repository at this point in the history
  • Loading branch information
Dreamersoul authored and benkonrath committed Jun 30, 2017
1 parent 961fd7d commit e51e52f
Show file tree
Hide file tree
Showing 5 changed files with 312 additions and 2 deletions.
1 change: 1 addition & 0 deletions docs/authors.rst
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ Authors
* Gerardo Orozco
* Ghassen Telmoudi
* Grzes Furga
* Hamad AlGhanim
* Honza Král
* Horst Gutmann
* Illia Volochii
Expand Down
3 changes: 2 additions & 1 deletion docs/changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ New flavors:

New fields for existing flavors:

- None
- Added KWAreaSelect form field.
(`gh-296 <https://github.com/django/django-localflavor/pull/296>`_)

Modifications to existing flavors:

Expand Down
14 changes: 14 additions & 0 deletions localflavor/kw/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

from localflavor.compat import EmptyValueCompatMixin

from .kw_areas import AREA_CHOICES
from .kw_governorates import GOVERNORATE_CHOICES


Expand Down Expand Up @@ -89,3 +90,16 @@ class KWGovernorateSelect(Select):
def __init__(self, attrs=None):
super(KWGovernorateSelect, self).__init__(attrs,
choices=GOVERNORATE_CHOICES)


class KWAreaSelect(Select):
"""
A Select widget that uses a list of Kuwait areas
as its choices.
.. versionadded:: 1.6
"""

def __init__(self, attrs=None):
super(KWAreaSelect, self).__init__(attrs,
choices=AREA_CHOICES)
151 changes: 151 additions & 0 deletions localflavor/kw/kw_areas.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.utils.translation import ugettext_lazy as _

# areas are divided into governorates

AREA_CHOICES = \
(
(_('Kuwait City'),
(
('AS', _('Abdullah Al-Salem')),
('AD', _('Adailiya')),
('BQ', _('Bneid Al Qar')),
('DY', _('Daiya')),
('DS', _('Dasma')),
('DN', _('Dasman')),
('DH', _('Doha')),
('FH', _('Faiha')),
('GR', _('Granada')),
('JA', _('Jaber Al Ahmad')),
('JB', _('Jibla')),
('KF', _('Kaifan')),
('KH', _('Khaldiya')),
('KC', _('Kuwait City')),
('KZ', _('Kuwait Free Trade Zone')),
('MS', _('Mansouriya')),
('MR', _('Mirqab')),
('MC', _('Mubarekiya Camps')),
('NT', _('Nahdha')),
('NS', _('North West Al-Sulaibikhat')),
('NZ', _('Nuzha')),
('QD', _('Qadsiya')),
('QA', _('Qairawan')),
('QT', _('Qortuba')),
('RW', _('Rawda')),
('SH', _('Salhiya')),
('SM', _('Shamiya')),
('SQ', _('Sharq')),
('SA', _('Shuwaikh Administrative')),
('SI', _('Shuwaikh Industrial')),
('SR', _('Shuwaikh Residential')),
('ST', _('Sulaibikhat')),
('SU', _('Surra')),
('YR', _('Yarmouk')),
)),
(_('Farwaniya'),
(
('AB', _('Abbasiya')),
('AM', _('Abdullah Al Mubarak Al Sabah')),
('AK', _('Abraq Khaitan')),
('DJ', _('Al-Dajeej')),
('SD', _('Al-Shadadiya')),
('AN', _('Andalous')),
('AR', _('Ardiya')),
('AI', _('Ardiya Small Industrial')),
('AZ', _('Ardiya Storage Zone')),
('FR', _('Farwaniya')),
('FD', _('Firdous')),
('IS', _('Ishbiliya')),
('JS', _('Jeleeb Al-Shuyoukh')),
('KT', _('Khaitan')),
('OM', _('Omariya')),
('RA', _('Rabia')),
('RI', _('Rai')),
('RH', _('Rehab')),
('RG', _('Rigai')),
('SN', _('Sabah Al Nasser')),
('SK', _('South Khaitan - Exhibits')),
)),
(_('Mubarak Al Kabir'),
(
('AH', _('Abu Al Hasaniya')),
('AF', _('Abu Fatira')),
('AA', _('Adan')),
('MS', _('Al-Masayel')),
('CS', _('Coast Strip B')),
('FN', _('Fnaitees')),
('ME', _('Messila')),
('MK', _('Mubarak Al Kabeer')),
('QU', _('Qurain')),
('QS', _('Qusor')),
('SS', _('Sabah Al Salem')),
('SL', _('Sabhan Industrial Area')),
('SW', _('South Wista')),
('WA', _('West Abu Fatira Small Industrial')),
)),
(_('Hawally'),
(
('AQ', _('Al-Siddeeq')),
('AJ', _('Anjafa')),
('BY', _('Bayan')),
('HT', _('Hateen')),
('HW', _('Hawally')),
('JR', _('Jabriya')),
('MH', _('Maidan Hawally')),
('MI', _('Mishref')),
('MA', _('Mubarak Al-Abdullah')),
('RU', _('Rumaithiya')),
('AL', _('Al-Salam')),
('SY', _('Salmiya')),
('LW', _('Salwa')),
('SB', _('Shaab')),
('DA', _('Shuhada')),
('ZH', _('Zahra')),
)),
(_('Ahmadi'),
(
('BH', _('Abu Halifa')),
('MD', _('Ahmadi')),
('KI', _('Al Khiran')),
('AW', _('Al Wafrah')),
('JU', "Al-Julaia_'a"),
('NU', _('Al-Nuwaiseeb')),
('RQ', _('Al-Riqqa')),
('SE', _('Ali Sabah Al Salem')),
('HI', _('Assabahiyah')),
('BN', _('Bnaider')),
('DR', _('Dahar')),
('EQ', _('Eqaila')),
('FA', _('Fahad Al Ahmad')),
('FE', _('Fahaheel')),
('FI', _('Fintas')),
('HD', _('Hadiya')),
('JI', _('Jaber Al Ali')),
('MB', _('Mahboula')),
('MG', _('Mangaf')),
('BA', _('Sabah Al Ahmad')),
('DU', _('Al Dubaiya')),
('MU', _('Mina Abdullah')),
('HU', _('Shuaiba Block 1')),
('WI', _('West Industrial Shuaiba')),
('ZR', _('Zour')),
)),
(
_('Jahra'), (
('S1', _('Al Sulaibiya Industrial 1')),
('S2', _('Al Sulaibiya Industrial 2')),
('IA', _('Amgarah Industrial Area')),
('JH', _('Jahra')),
('NA', _('Naeem')),
('NM', _('Naseem')),
('OY', _('Oyoun')),
('QR', _('Qasr')),
('BD', _('Saad Al Abdullah')),
('S0', _('Sulaibiya')),
('TA', _('Taima\'')),
('WH', _('Waha')),
)
),
)
145 changes: 144 additions & 1 deletion tests/test_kw.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,11 @@

from django.test import SimpleTestCase

from localflavor.kw.forms import KWCivilIDNumberField, KWGovernorateSelect
from localflavor.kw.forms import KWAreaSelect, KWCivilIDNumberField, KWGovernorateSelect


class KWLocalFlavorTests(SimpleTestCase):
maxDiff = None
def test_KWCivilIDNumberField(self):
error_invalid = ['Enter a valid Kuwaiti Civil ID number']
valid = {
Expand All @@ -32,3 +33,145 @@ def test_KWGovernorateSelect(self):
<option value="MU">Mubarak Al Kabir</option>
</select>'''
self.assertHTMLEqual(f.render('governorates', 'KU'), result)

def test_KWAreaSelect(self):
f = KWAreaSelect()
result = \
'''<select name="areas">
<optgroup label="Kuwait City">
<option value="AS">Abdullah Al-Salem</option>
<option value="AD">Adailiya</option>
<option value="BQ">Bneid Al Qar</option>
<option value="DY">Daiya</option>
<option value="DS">Dasma</option>
<option value="DN">Dasman</option>
<option value="DH">Doha</option>
<option value="FH">Faiha</option>
<option value="GR">Granada</option>
<option value="JA">Jaber Al Ahmad</option>
<option value="JB">Jibla</option>
<option value="KF">Kaifan</option>
<option value="KH">Khaldiya</option>
<option value="KC">Kuwait City</option>
<option value="KZ">Kuwait Free Trade Zone</option>
<option value="MS">Mansouriya</option>
<option value="MR">Mirqab</option>
<option value="MC">Mubarekiya Camps</option>
<option value="NT">Nahdha</option>
<option value="NS">North West Al-Sulaibikhat</option>
<option value="NZ">Nuzha</option>
<option value="QD">Qadsiya</option>
<option value="QA">Qairawan</option>
<option value="QT">Qortuba</option>
<option value="RW">Rawda</option>
<option value="SH">Salhiya</option>
<option value="SM">Shamiya</option>
<option value="SQ">Sharq</option>
<option value="SA">Shuwaikh Administrative</option>
<option value="SI">Shuwaikh Industrial</option>
<option value="SR">Shuwaikh Residential</option>
<option value="ST">Sulaibikhat</option>
<option value="SU">Surra</option>
<option value="YR">Yarmouk</option>
</optgroup>
<optgroup label="Farwaniya">
<option value="AB">Abbasiya</option>
<option value="AM">Abdullah Al Mubarak Al Sabah</option>
<option value="AK">Abraq Khaitan</option>
<option value="DJ">Al-Dajeej</option>
<option value="SD">Al-Shadadiya</option>
<option value="AN">Andalous</option>
<option value="AR">Ardiya</option>
<option value="AI">Ardiya Small Industrial</option>
<option value="AZ">Ardiya Storage Zone</option>
<option value="FR">Farwaniya</option>
<option value="FD">Firdous</option>
<option value="IS">Ishbiliya</option>
<option value="JS">Jeleeb Al-Shuyoukh</option>
<option value="KT">Khaitan</option>
<option value="OM">Omariya</option>
<option value="RA">Rabia</option>
<option value="RI">Rai</option>
<option value="RH">Rehab</option>
<option value="RG">Rigai</option>
<option value="SN">Sabah Al Nasser</option>
<option value="SK">South Khaitan - Exhibits</option>
</optgroup>
<optgroup label="Mubarak Al Kabir">
<option value="AH">Abu Al Hasaniya</option>
<option value="AF">Abu Fatira</option>
<option value="AA">Adan</option>
<option value="MS">Al-Masayel</option>
<option value="CS">Coast Strip B</option>
<option value="FN">Fnaitees</option>
<option value="ME">Messila</option>
<option value="MK">Mubarak Al Kabeer</option>
<option value="QU">Qurain</option>
<option value="QS">Qusor</option>
<option value="SS">Sabah Al Salem</option>
<option value="SL">Sabhan Industrial Area</option>
<option value="SW">South Wista</option>
<option value="WA">West Abu Fatira Small Industrial</option>
</optgroup>
<optgroup label="Hawally">
<option value="AQ">Al-Siddeeq</option>
<option value="AJ">Anjafa</option>
<option value="BY">Bayan</option>
<option value="HT">Hateen</option>
<option value="HW">Hawally</option>
<option value="JR">Jabriya</option>
<option value="MH">Maidan Hawally</option>
<option value="MI">Mishref</option>
<option value="MA">Mubarak Al-Abdullah</option>
<option value="RU">Rumaithiya</option>
<option value="AL">Al-Salam</option>
<option value="SY">Salmiya</option>
<option value="LW">Salwa</option>
<option value="SB">Shaab</option>
<option value="DA">Shuhada</option>
<option value="ZH">Zahra</option>
</optgroup>
<optgroup label="Ahmadi">
<option value="BH">Abu Halifa</option>
<option value="MD">Ahmadi</option>
<option value="KI">Al Khiran</option>
<option value="AW">Al Wafrah</option>
<option value="JU">Al-Julaia_&#39;a</option>
<option value="NU">Al-Nuwaiseeb</option>
<option value="RQ">Al-Riqqa</option>
<option value="SE">Ali Sabah Al Salem</option>
<option value="HI">Assabahiyah</option>
<option value="BN">Bnaider</option>
<option value="DR">Dahar</option>
<option value="EQ">Eqaila</option>
<option value="FA">Fahad Al Ahmad</option>
<option value="FE">Fahaheel</option>
<option value="FI">Fintas</option>
<option value="HD">Hadiya</option>
<option value="JI">Jaber Al Ali</option>
<option value="MB">Mahboula</option>
<option value="MG">Mangaf</option>
<option value="BA">Sabah Al Ahmad</option>
<option value="DU">Al Dubaiya</option>
<option value="MU">Mina Abdullah</option>
<option value="HU">Shuaiba Block 1</option>
<option value="WI">West Industrial Shuaiba</option>
<option value="ZR">Zour</option>
</optgroup>
<optgroup label="Jahra">
<option value="S1">Al Sulaibiya Industrial 1</option>
<option value="S2">Al Sulaibiya Industrial 2</option>
<option value="IA">Amgarah Industrial Area</option>
<option value="JH">Jahra</option>
<option value="NA">Naeem</option>
<option value="NM">Naseem</option>
<option value="OY">Oyoun</option>
<option value="QR">Qasr</option>
<option value="BD">Saad Al Abdullah</option>
<option value="S0">Sulaibiya</option>
<option value="TA">Taima&#39;</option>
<option value="WH">Waha</option>
</optgroup>
</select>'''
self.assertHTMLEqual(f.render('areas', ''), result)

0 comments on commit e51e52f

Please sign in to comment.