diff -r b758351d191f -r cc9b7e14412b web/lib/django/contrib/localflavor/us/models.py --- a/web/lib/django/contrib/localflavor/us/models.py Wed May 19 17:43:59 2010 +0200 +++ b/web/lib/django/contrib/localflavor/us/models.py Tue May 25 02:43:45 2010 +0200 @@ -1,35 +1,27 @@ from django.conf import settings -from django.db.models.fields import Field +from django.utils.translation import ugettext_lazy as _ +from django.db.models.fields import CharField +from django.contrib.localflavor.us.us_states import STATE_CHOICES + +class USStateField(CharField): + + description = _("U.S. state (two uppercase letters)") -class USStateField(Field): - def get_internal_type(self): - return "USStateField" - - def db_type(self): - if settings.DATABASE_ENGINE == 'oracle': - return 'CHAR(2)' - else: - return 'varchar(2)' - - def formfield(self, **kwargs): - from django.contrib.localflavor.us.forms import USStateSelect - defaults = {'widget': USStateSelect} - defaults.update(kwargs) - return super(USStateField, self).formfield(**defaults) + def __init__(self, *args, **kwargs): + kwargs['choices'] = STATE_CHOICES + kwargs['max_length'] = 2 + super(USStateField, self).__init__(*args, **kwargs) -class PhoneNumberField(Field): - def get_internal_type(self): - return "PhoneNumberField" +class PhoneNumberField(CharField): + + description = _("Phone number") - def db_type(self): - if settings.DATABASE_ENGINE == 'oracle': - return 'VARCHAR2(20)' - else: - return 'varchar(20)' + def __init__(self, *args, **kwargs): + kwargs['max_length'] = 20 + super(PhoneNumberField, self).__init__(*args, **kwargs) def formfield(self, **kwargs): from django.contrib.localflavor.us.forms import USPhoneNumberField defaults = {'form_class': USPhoneNumberField} defaults.update(kwargs) return super(PhoneNumberField, self).formfield(**defaults) -