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/ch/forms.py

    r5876 r6926  
    1313 
    1414class CHZipCodeField(RegexField): 
     15    default_error_messages = { 
     16        'invalid': ugettext('Enter a zip code in the format XXXX.'), 
     17    } 
     18 
    1519    def __init__(self, *args, **kwargs): 
    1620        super(CHZipCodeField, self).__init__(r'^\d{4}$', 
    17         max_length=None, min_length=None, 
    18         error_message=ugettext('Enter a zip code in the format XXXX.'), 
    19         *args, **kwargs) 
     21        max_length=None, min_length=None, *args, **kwargs) 
    2022 
    2123class CHPhoneNumberField(Field): 
     
    2628    '0XX XXX XX XX'. 
    2729    """ 
     30    default_error_messages = { 
     31        'invalid': 'Phone numbers must be in 0XX XXX XX XX format.', 
     32    } 
     33 
    2834    def clean(self, value): 
    2935        super(CHPhoneNumberField, self).clean(value) 
     
    3440        if m: 
    3541            return u'%s %s %s %s' % (value[0:3], value[3:6], value[6:8], value[8:10]) 
    36         raise ValidationError('Phone numbers must be in 0XX XXX XX XX format.'
     42        raise ValidationError(self.error_messages['invalid']
    3743 
    3844class CHStateSelect(Select): 
     
    5561    Algorithm is documented at http://adi.kousz.ch/artikel/IDCHE.htm 
    5662    """ 
     63    default_error_messages = { 
     64        'invalid': ugettext('Enter a valid Swiss identity or passport card number in X1234567<0 or 1234567890 format.'), 
     65    } 
     66 
    5767    def has_valid_checksum(self, number): 
    5868        given_number, given_checksum = number[:-1], number[-1] 
     
    8898    def clean(self, value): 
    8999        super(CHIdentityCardNumberField, self).clean(value) 
    90         error_msg = ugettext('Enter a valid Swiss identity or passport card number in X1234567<0 or 1234567890 format.') 
    91100        if value in EMPTY_VALUES: 
    92101            return u'' 
     
    94103        match = re.match(id_re, value) 
    95104        if not match: 
    96             raise ValidationError(error_msg
     105            raise ValidationError(self.error_messages['invalid']
    97106 
    98107        idnumber, pos9, checksum = match.groupdict()['idnumber'], match.groupdict()['pos9'], match.groupdict()['checksum'] 
     
    100109        if idnumber == '00000000' or \ 
    101110           idnumber == 'A0000000': 
    102             raise ValidationError(error_msg
     111            raise ValidationError(self.error_messages['invalid']
    103112 
    104113        all_digits = "%s%s%s" % (idnumber, pos9, checksum) 
    105114        if not self.has_valid_checksum(all_digits): 
    106             raise ValidationError(error_msg
     115            raise ValidationError(self.error_messages['invalid']
    107116 
    108117        return u'%s%s%s' % (idnumber, pos9, checksum)