Changeset 6926 for django/trunk/django/contrib/localflavor/ch
- Timestamp:
- 12/17/07 02:05:27 (1 year ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/trunk/django/contrib/localflavor/ch/forms.py
r5876 r6926 13 13 14 14 class CHZipCodeField(RegexField): 15 default_error_messages = { 16 'invalid': ugettext('Enter a zip code in the format XXXX.'), 17 } 18 15 19 def __init__(self, *args, **kwargs): 16 20 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) 20 22 21 23 class CHPhoneNumberField(Field): … … 26 28 '0XX XXX XX XX'. 27 29 """ 30 default_error_messages = { 31 'invalid': 'Phone numbers must be in 0XX XXX XX XX format.', 32 } 33 28 34 def clean(self, value): 29 35 super(CHPhoneNumberField, self).clean(value) … … 34 40 if m: 35 41 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']) 37 43 38 44 class CHStateSelect(Select): … … 55 61 Algorithm is documented at http://adi.kousz.ch/artikel/IDCHE.htm 56 62 """ 63 default_error_messages = { 64 'invalid': ugettext('Enter a valid Swiss identity or passport card number in X1234567<0 or 1234567890 format.'), 65 } 66 57 67 def has_valid_checksum(self, number): 58 68 given_number, given_checksum = number[:-1], number[-1] … … 88 98 def clean(self, value): 89 99 super(CHIdentityCardNumberField, self).clean(value) 90 error_msg = ugettext('Enter a valid Swiss identity or passport card number in X1234567<0 or 1234567890 format.')91 100 if value in EMPTY_VALUES: 92 101 return u'' … … 94 103 match = re.match(id_re, value) 95 104 if not match: 96 raise ValidationError( error_msg)105 raise ValidationError(self.error_messages['invalid']) 97 106 98 107 idnumber, pos9, checksum = match.groupdict()['idnumber'], match.groupdict()['pos9'], match.groupdict()['checksum'] … … 100 109 if idnumber == '00000000' or \ 101 110 idnumber == 'A0000000': 102 raise ValidationError( error_msg)111 raise ValidationError(self.error_messages['invalid']) 103 112 104 113 all_digits = "%s%s%s" % (idnumber, pos9, checksum) 105 114 if not self.has_valid_checksum(all_digits): 106 raise ValidationError( error_msg)115 raise ValidationError(self.error_messages['invalid']) 107 116 108 117 return u'%s%s%s' % (idnumber, pos9, checksum)
