Fixed #5462 -- Added Peruvian localflavor. Thanks, xbito.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@6283 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
885db3cb79
commit
b2f92dfcc5
|
@ -0,0 +1,61 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
PE-specific Form helpers.
|
||||
"""
|
||||
|
||||
from django.newforms import ValidationError
|
||||
from django.newforms.fields import RegexField, CharField, Select, EMPTY_VALUES
|
||||
from django.utils.translation import ugettext
|
||||
|
||||
class PEDepartmentSelect(Select):
|
||||
"""
|
||||
A Select widget that uses a list of Peruvian Departments as its choices.
|
||||
"""
|
||||
def __init__(self, attrs=None):
|
||||
from pe_department import DEPARTMENT_CHOICES
|
||||
super(PEDepartmentSelect, self).__init__(attrs, choices=DEPARTMENT_CHOICES)
|
||||
|
||||
class PEDNIField(CharField):
|
||||
"""
|
||||
A field that validates `Documento Nacional de IdentidadŽ (DNI) numbers.
|
||||
"""
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(PEDNIField, self).__init__(max_length=8, min_length=8, *args,
|
||||
**kwargs)
|
||||
|
||||
def clean(self, value):
|
||||
"""
|
||||
Value must be a string in the XXXXXXXX formats.
|
||||
"""
|
||||
value = super(PEDNIField, self).clean(value)
|
||||
if value in EMPTY_VALUES:
|
||||
return u''
|
||||
if not value.isdigit():
|
||||
raise ValidationError(ugettext("This field requires only numbers."))
|
||||
if len(value) != 8:
|
||||
raise ValidationError(ugettext("This field requires 8 digits."))
|
||||
|
||||
return value
|
||||
|
||||
class PERUCField(RegexField):
|
||||
"""
|
||||
This field validates a RUC (Registro Unico de Contribuyentes). A RUC is of
|
||||
the form XXXXXXXXXXX.
|
||||
"""
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(PERUCField, self).__init__(max_length=11, min_length=11, *args,
|
||||
**kwargs)
|
||||
|
||||
def clean(self, value):
|
||||
"""
|
||||
Value must be an 11-digit number.
|
||||
"""
|
||||
value = super(PERUCField, self).clean(value)
|
||||
if value in EMPTY_VALUES:
|
||||
return u''
|
||||
if not value.isdigit():
|
||||
raise ValidationError(ugettext("This field requires only numbers."))
|
||||
if len(value) != 11:
|
||||
raise ValidationError(ugettext("This field requires 11 digits."))
|
||||
return value
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
A list of Peru departaments as `choices` in a
|
||||
formfield.
|
||||
|
||||
This exists in this standalone file so that it's only imported into memory
|
||||
when explicitly needed.
|
||||
"""
|
||||
|
||||
DEPARTMENT_CHOICES = (
|
||||
('AMA', u'Amazonas'),
|
||||
('ANC', u'Ancash'),
|
||||
('APU', u'Apurímac'),
|
||||
('ARE', u'Arequipa'),
|
||||
('AYA', u'Ayacucho'),
|
||||
('CAJ', u'Cajamarca'),
|
||||
('CUS', u'Cusco'),
|
||||
('HUV', u'Huancavelica'),
|
||||
('HUC', u'Huánuco'),
|
||||
('ICA', u'Ica'),
|
||||
('JUN', u'Junín'),
|
||||
('LAL', u'La Libertad'),
|
||||
('LAM', u'Lambayeque'),
|
||||
('LIM', u'Lima'),
|
||||
('LOR', u'Loreto'),
|
||||
('MDD', u'Madre de Dios'),
|
||||
('MOQ', u'Moquegua'),
|
||||
('PAS', u'Pasco'),
|
||||
('PIU', u'Piura'),
|
||||
('PUN', u'Puno'),
|
||||
('SAM', u'San Martín'),
|
||||
('TAC', u'Tacna'),
|
||||
('TUM', u'Tumbes'),
|
||||
('UCA', u'Ucayali'),
|
||||
)
|
Loading…
Reference in New Issue