Kaydet (Commit) 9309a8d6 authored tarafından Malcolm Tredinnick's avatar Malcolm Tredinnick

Fixed #3986 -- Added Indian localflavor. Thanks, pradeep.gowda@gmail.com.


git-svn-id: http://code.djangoproject.com/svn/django/trunk@5847 bcc190cf-cafb-0310-a4f2-bffc1f526a37
üst 9864c9d8
......@@ -120,6 +120,7 @@ answer newbie questions, and generally made Django that much better:
martin.glueck@gmail.com
GomoX <gomo@datafull.com>
Mario Gonzalez <gonzalemario@gmail.com>
pradeep.gowda@gmail.com
Simon Greenhill <dev@simon.net.nz>
Owen Griffiths
Espen Grindhaug <http://grindhaug.org/>
......
"""
India-specific Form helpers.
"""
from django.newforms import ValidationError
from django.newforms.fields import Field, RegexField, Select, EMPTY_VALUES
from django.utils.encoding import smart_unicode
from django.utils.translation import gettext
import re
class INZipCodeField(RegexField):
def __init__(self, *args, **kwargs):
super(INZipCodeField, self).__init__(r'^\d{6}$',
max_length=None, min_length=None,
error_message=gettext(u'Enter a zip code in the format XXXXXXX.'),
*args, **kwargs)
class INStateField(Field):
"""
A form field that validates its input is a Indian state name or
abbreviation. It normalizes the input to the standard two-letter vehicle
registration abbreviation for the given state or union territory
"""
def clean(self, value):
from in_states import STATES_NORMALIZED
super(INStateField, self).clean(value)
if value in EMPTY_VALUES:
return u''
try:
value = value.strip().lower()
except AttributeError:
pass
else:
try:
return smart_unicode(STATES_NORMALIZED[value.strip().lower()])
except KeyError:
pass
raise ValidationError(u'Enter a Indian state or territory.')
class INStateSelect(Select):
"""
A Select widget that uses a list of Indian states/territories as its
choices.
"""
def __init__(self, attrs=None):
from in_states import STATE_CHOICES
super(INStateSelect, self).__init__(attrs, choices=STATE_CHOICES)
"""
A mapping of state misspellings/abbreviations to normalized abbreviations, and
an alphabetical list of states for use as `choices` in a formfield.
This exists in this standalone file so that it's only imported into memory
when explicitly needed.
"""
STATE_CHOICES = (
'KA', 'Karnataka',
'AP', 'Andhra Pradesh',
'KL', 'Kerala',
'TN', 'Tamil Nadu',
'MH', 'Maharashtra',
'UP', 'Uttar Pradesh',
'GA', 'Goa',
'GJ', 'Gujarat',
'RJ', 'Rajasthan',
'HP', 'Himachal Pradesh',
'JK', 'Jammu and Kashmir',
'AR', 'Arunachal Pradesh',
'AS', 'Assam',
'BR', 'Bihar',
'CG', 'Chattisgarh',
'HR', 'Haryana',
'JH', 'Jharkhand',
'MP', 'Madhya Pradesh',
'MN', 'Manipur',
'ML', 'Meghalaya',
'MZ', 'Mizoram',
'NL', 'Nagaland',
'OR', 'Orissa',
'PB', 'Punjab',
'SK', 'Sikkim',
'TR', 'Tripura',
'UA', 'Uttarakhand',
'WB', 'West Bengal',
#Union Territories
'AN', 'Andaman and Nicobar',
'CH', 'Chandigarh',
'DN', 'Dadra and Nagar Haveli',
'DD', 'Daman and Diu',
'DL', 'Delhi',
'LD', 'Lakshadweep',
'PY', 'Pondicherry',
)
STATES_NORMALIZED = {
'ka': 'KA',
'karnatka': 'KA',
'tn': 'TN',
'tamilnad': 'TN',
'tamilnadu': 'TN',
'andra pradesh': 'AP',
'andrapradesh': 'AP',
'andhrapradesh': 'AP',
'maharastra': 'MH',
'mh': 'MH',
'ap': 'AP',
'dl': 'DL',
'dd': 'DD',
'br': 'BR',
'ar': 'AR',
'sk': 'SK',
'kl': 'KL',
'ga': 'GA',
'rj': 'RJ',
'rajastan': 'RJ',
'rajasthan': 'RJ',
'hp': 'HP',
'ua': 'UA',
'up': 'UP',
'mp': 'MP',
'mz': 'MZ',
'bengal': 'WB',
'westbengal': 'WB',
'mizo': 'MZ',
'orisa': 'OR',
'odisa': 'OR',
'or': 'OR',
'ar': 'AR',
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment