Django

Code

Show
Ignore:
Timestamp:
12/17/07 02:05:27 (1 year ago)
Author:
mtredinnick
Message:

Fixed #5871 -- Factored out the validation errors in localflavor form fields. Brings them into line with the standard newforms fields. Patch from Jan Rademaker.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/contrib/localflavor/br/forms.py

    r6183 r6926  
    1818 
    1919class BRZipCodeField(RegexField): 
     20    default_error_messages = { 
     21        'invalid': _('Enter a zip code in the format XXXXX-XXX.'), 
     22    } 
     23 
    2024    def __init__(self, *args, **kwargs): 
    2125        super(BRZipCodeField, self).__init__(r'^\d{5}-\d{3}$', 
    22             max_length=None, min_length=None, 
    23             error_message=_('Enter a zip code in the format XXXXX-XXX.'), 
    24                     *args, **kwargs) 
     26            max_length=None, min_length=None, *args, **kwargs) 
    2527 
    2628class BRPhoneNumberField(Field): 
     29    default_error_messages = { 
     30        'invalid': _('Phone numbers must be in XX-XXXX-XXXX format.'), 
     31    } 
     32 
    2733    def clean(self, value): 
    2834        super(BRPhoneNumberField, self).clean(value) 
     
    3339        if m: 
    3440            return u'%s-%s-%s' % (m.group(1), m.group(2), m.group(3)) 
    35         raise ValidationError(_('Phone numbers must be in XX-XXXX-XXXX format.')
     41        raise ValidationError(self.error_messages['invalid']
    3642 
    3743class BRStateSelect(Select): 
     
    4955    """ 
    5056    widget = Select 
     57    default_error_messages = { 
     58        'invalid': _(u'Select a valid brazilian state. That state is not one of the available states.'), 
     59    } 
    5160 
    5261    def __init__(self, required=True, widget=None, label=None, 
     
    6675        valid_values = set([smart_unicode(k) for k, v in self.widget.choices]) 
    6776        if value not in valid_values: 
    68             raise ValidationError(_(u'Select a valid brazilian state.' 
    69                                            u' That state is not one' 
    70                                            u' of the available states.')) 
     77            raise ValidationError(self.error_messages['invalid']) 
    7178        return value 
    7279 
     
    8491    http://en.wikipedia.org/wiki/Cadastro_de_Pessoas_F%C3%ADsicas 
    8592    """ 
     93    default_error_messages = { 
     94        'invalid': _("Invalid CPF number."), 
     95        'max_digits': _("This field requires at most 11 digits or 14 characters."), 
     96        'digits_only': _("This field requires only numbers."), 
     97    } 
     98 
    8699    def __init__(self, *args, **kwargs): 
    87100        super(BRCPFField, self).__init__(max_length=14, min_length=11, *args, **kwargs) 
     
    101114            int(value) 
    102115        except ValueError: 
    103             raise ValidationError(_("This field requires only numbers.")
     116            raise ValidationError(self.error_messages['digits_only']
    104117        if len(value) != 11: 
    105             raise ValidationError(_("This field requires at most 11 digits or 14 characters.")
     118            raise ValidationError(self.error_messages['max_digits']
    106119        orig_dv = value[-2:] 
    107120 
     
    113126        value = value[:-1] + str(new_2dv) 
    114127        if value[-2:] != orig_dv: 
    115             raise ValidationError(_("Invalid CPF number.")
     128            raise ValidationError(self.error_messages['invalid']
    116129 
    117130        return orig_value 
    118131 
    119132class BRCNPJField(Field): 
     133    default_error_messages = { 
     134        'invalid': _("Invalid CNPJ number."), 
     135        'digits_only': _("This field requires only numbers."), 
     136        'max_digits': _("This field requires at least 14 digits"), 
     137    } 
     138 
    120139    def clean(self, value): 
    121140        """ 
     
    132151            int(value) 
    133152        except ValueError: 
    134             raise ValidationError("This field requires only numbers."
     153            raise ValidationError(self.error_messages['digits_only']
    135154        if len(value) != 14: 
    136             raise ValidationError( 
    137                 _("This field requires at least 14 digits")) 
     155            raise ValidationError(self.error_messages['max_digits']) 
    138156        orig_dv = value[-2:] 
    139157 
     
    145163        value = value[:-1] + str(new_2dv) 
    146164        if value[-2:] != orig_dv: 
    147             raise ValidationError(_("Invalid CNPJ number.")
     165            raise ValidationError(self.error_messages['invalid']
    148166 
    149167        return orig_value 
    150