Django

Code

Show
Ignore:
Timestamp:
07/13/08 09:31:09 (6 months ago)
Author:
jbronn
Message:

gis: Merged revisions 7837-7838,7842-7852,7856-7869,7871,7876-7877,7882-7891,7900-7917 via svnmerge from trunk.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/branches/gis

    • Property svnmerge-integrated changed from /django/trunk:1-7835 to /django/trunk:1-7917
  • django/branches/gis/django/newforms/fields.py

    r7836 r7918  
    2828from util import ErrorList, ValidationError 
    2929from widgets import TextInput, PasswordInput, HiddenInput, MultipleHiddenInput, FileInput, CheckboxInput, Select, NullBooleanSelect, SelectMultiple, DateTimeInput 
    30  
     30from django.core.files.uploadedfile import SimpleUploadedFile as UploadedFile 
    3131 
    3232__all__ = ( 
     
    420420    URL_VALIDATOR_USER_AGENT = 'Django (http://www.djangoproject.com/)' 
    421421 
    422 class UploadedFile(StrAndUnicode): 
    423     "A wrapper for files uploaded in a FileField" 
    424     def __init__(self, filename, data): 
    425         self.filename = filename 
    426         self.data = data 
    427  
    428     def __unicode__(self): 
    429         """ 
    430         The unicode representation is the filename, so that the pre-database-insertion 
    431         logic can use UploadedFile objects 
    432         """ 
    433         return self.filename 
    434422 
    435423class FileField(Field): 
     
    461449                stacklevel = 2 
    462450            ) 
     451            data = UploadedFile(data['filename'], data['content']) 
    463452 
    464453        try: 
    465             file_name = data.file_name 
    466             file_size = data.file_size 
     454            file_name = data.name 
     455            file_size = data.size 
    467456        except AttributeError: 
    468             try: 
    469                 file_name = data.get('filename') 
    470                 file_size = bool(data['content']) 
    471             except (AttributeError, KeyError): 
    472                 raise ValidationError(self.error_messages['invalid']) 
     457            raise ValidationError(self.error_messages['invalid']) 
    473458 
    474459        if not file_name: 
     
    477462            raise ValidationError(self.error_messages['empty']) 
    478463 
    479         return UploadedFile(file_name, data) 
     464        return data 
    480465 
    481466class ImageField(FileField): 
     
    523508        except Exception: # Python Imaging Library doesn't recognize it as an image 
    524509            raise ValidationError(self.error_messages['invalid_image']) 
     510        if hasattr(f, 'seek') and callable(f.seek): 
     511            f.seek(0) 
    525512        return f 
    526513 
  • django/branches/gis/django/newforms/forms.py

    r7279 r7918  
    5757    def __new__(cls, name, bases, attrs): 
    5858        attrs['base_fields'] = get_declared_fields(bases, attrs) 
    59         return type.__new__(cls, name, bases, attrs) 
     59        return super(DeclarativeFieldsMetaclass, 
     60                     cls).__new__(cls, name, bases, attrs) 
    6061 
    6162class BaseForm(StrAndUnicode): 
  • django/branches/gis/django/newforms/models.py

    r7768 r7918  
    214214 
    215215class ModelFormMetaclass(type): 
    216     def __new__(cls, name, bases, attrs, 
    217                 formfield_callback=lambda f: f.formfield()): 
     216    def __new__(cls, name, bases, attrs): 
     217        formfield_callback = attrs.pop('formfield_callback', 
     218                lambda f: f.formfield()) 
    218219        try: 
    219220            parents = [b for b in bases if issubclass(b, ModelForm)] 
     
    221222            # We are defining ModelForm itself. 
    222223            parents = None 
     224        new_class = super(ModelFormMetaclass, cls).__new__(cls, name, bases, 
     225                attrs) 
    223226        if not parents: 
    224             return super(ModelFormMetaclass, cls).__new__(cls, name, bases, 
    225                     attrs) 
    226  
    227         new_class = type.__new__(cls, name, bases, attrs) 
     227            return new_class 
     228 
    228229        declared_fields = get_declared_fields(bases, attrs, False) 
    229230        opts = new_class._meta = ModelFormOptions(getattr(new_class, 'Meta', None))