1 # -*- coding: utf-8 -*- |
1 # -*- coding: utf-8 -*- |
2 """ |
2 """ |
3 PE-specific Form helpers. |
3 PE-specific Form helpers. |
4 """ |
4 """ |
5 |
5 |
6 from django.newforms import ValidationError |
6 from django.forms import ValidationError |
7 from django.newforms.fields import RegexField, CharField, Select, EMPTY_VALUES |
7 from django.forms.fields import RegexField, CharField, Select, EMPTY_VALUES |
8 from django.utils.translation import ugettext |
8 from django.utils.translation import ugettext_lazy as _ |
9 |
9 |
10 class PEDepartmentSelect(Select): |
10 class PERegionSelect(Select): |
11 """ |
11 """ |
12 A Select widget that uses a list of Peruvian Departments as its choices. |
12 A Select widget that uses a list of Peruvian Regions as its choices. |
13 """ |
13 """ |
14 def __init__(self, attrs=None): |
14 def __init__(self, attrs=None): |
15 from pe_department import DEPARTMENT_CHOICES |
15 from pe_region import REGION_CHOICES |
16 super(PEDepartmentSelect, self).__init__(attrs, choices=DEPARTMENT_CHOICES) |
16 super(PERegionSelect, self).__init__(attrs, choices=REGION_CHOICES) |
17 |
17 |
18 class PEDNIField(CharField): |
18 class PEDNIField(CharField): |
19 """ |
19 """ |
20 A field that validates `Documento Nacional de IdentidadŽ (DNI) numbers. |
20 A field that validates `Documento Nacional de IdentidadŽ (DNI) numbers. |
21 """ |
21 """ |
22 default_error_messages = { |
22 default_error_messages = { |
23 'invalid': ugettext("This field requires only numbers."), |
23 'invalid': _("This field requires only numbers."), |
24 'max_digits': ugettext("This field requires 8 digits."), |
24 'max_digits': _("This field requires 8 digits."), |
25 } |
25 } |
26 |
26 |
27 def __init__(self, *args, **kwargs): |
27 def __init__(self, *args, **kwargs): |
28 super(PEDNIField, self).__init__(max_length=8, min_length=8, *args, |
28 super(PEDNIField, self).__init__(max_length=8, min_length=8, *args, |
29 **kwargs) |
29 **kwargs) |
46 """ |
46 """ |
47 This field validates a RUC (Registro Unico de Contribuyentes). A RUC is of |
47 This field validates a RUC (Registro Unico de Contribuyentes). A RUC is of |
48 the form XXXXXXXXXXX. |
48 the form XXXXXXXXXXX. |
49 """ |
49 """ |
50 default_error_messages = { |
50 default_error_messages = { |
51 'invalid': ugettext("This field requires only numbers."), |
51 'invalid': _("This field requires only numbers."), |
52 'max_digits': ugettext("This field requires 11 digits."), |
52 'max_digits': _("This field requires 11 digits."), |
53 } |
53 } |
54 |
54 |
55 def __init__(self, *args, **kwargs): |
55 def __init__(self, *args, **kwargs): |
56 super(PERUCField, self).__init__(max_length=11, min_length=11, *args, |
56 super(PERUCField, self).__init__(max_length=11, min_length=11, *args, |
57 **kwargs) |
57 **kwargs) |