Source code for localflavor.ru.forms

"""Russian-specific forms helpers."""
from django.forms.fields import RegexField, Select
from django.utils.translation import gettext_lazy as _

from .ru_regions import RU_COUNTY_CHOICES, RU_REGIONS_CHOICES


[docs]class RUCountySelect(Select): """A Select widget that uses a list of Russian Counties as its choices.""" def __init__(self, attrs=None): super().__init__(attrs, choices=RU_COUNTY_CHOICES)
[docs]class RURegionSelect(Select): """A Select widget that uses a list of Russian Regions as its choices.""" def __init__(self, attrs=None): super().__init__(attrs, choices=RU_REGIONS_CHOICES)
[docs]class RUPostalCodeField(RegexField): """ Russian Postal code field. Format: XXXXXX, where X is any digit, and first digit is not zero. """ default_error_messages = { 'invalid': _('Enter a postal code in the format XXXXXX.'), } def __init__(self, **kwargs): super().__init__(r'^\d{6}$', **kwargs)
[docs]class RUPassportNumberField(RegexField): """ Russian internal passport number format. XXXX XXXXXX where X - any digit. """ default_error_messages = { 'invalid': _('Enter a passport number in the format XXXX XXXXXX.'), } def __init__(self, **kwargs): super().__init__(r'^\d{4} \d{6}$', **kwargs)
[docs]class RUAlienPassportNumberField(RegexField): """ Russian alien's passport number format. XX XXXXXXX where X - any digit. """ default_error_messages = { 'invalid': _('Enter a passport number in the format XX XXXXXXX.'), } def __init__(self, **kwargs): super().__init__(r'^\d{2} \d{7}$', **kwargs)