diff --git a/avatar/forms.py b/avatar/forms.py index 86df8af..6646a96 100644 --- a/avatar/forms.py +++ b/avatar/forms.py @@ -21,7 +21,7 @@ def avatar_img(avatar, size): class UploadAvatarForm(forms.Form): - avatar = forms.ImageField(label=_(u"Avatar")) + avatar = forms.ImageField(label=_("Avatar")) def __init__(self, *args, **kwargs): self.user = kwargs.pop('user') @@ -49,11 +49,17 @@ class UploadAvatarForm(forms.Form): mime = magic.from_buffer(magic_buffer, mime=True) if mime not in settings.AVATAR_ALLOWED_MIMETYPES: - raise forms.ValidationError( - _(u"File content is invalid. Detected: %(mimetype)s " - "Allowed content types are: %(valid_mime_list)s") % - {'valid_mime_list': ", ".join(AVATAR_ALLOWED_MIMETYPES), - 'mimetype': mime}) + err = _( + u"File content is invalid. Detected: %(mimetype)s " + "Allowed content types are: %(valid_mime_list)s" + ) + + conf = { + 'valid_mime_list': ", ".join(settings.AVATAR_ALLOWED_MIMETYPES), + 'mimetype': mime + } + + raise forms.ValidationError(err % conf) if settings.AVATAR_ALLOWED_FILE_EXTS: root, ext = os.path.splitext(data.name.lower()) diff --git a/avatar/settings.py b/avatar/settings.py index 8f696dd..916c115 100644 --- a/avatar/settings.py +++ b/avatar/settings.py @@ -2,12 +2,12 @@ from django.conf import settings try: from PIL import Image - dir(Image) # Placate PyFlakes + dir(Image) # Placate PyFlakes except ImportError: import Image AVATAR_DEFAULT_SIZE = getattr(settings, 'AVATAR_DEFAULT_SIZE', 80) -AUTO_GENERATE_AVATAR_SIZES = getattr(settings, 'AUTO_GENERATE_AVATAR_SIZES', (AVATAR_DEFAULT_SIZE,)) +AVATAR_AUTO_GENERATE_SIZES = getattr(settings, 'AUTO_GENERATE_AVATAR_SIZES', (AVATAR_DEFAULT_SIZE,)) AVATAR_RESIZE_METHOD = getattr(settings, 'AVATAR_RESIZE_METHOD', Image.ANTIALIAS) AVATAR_STORAGE_DIR = getattr(settings, 'AVATAR_STORAGE_DIR', 'avatars') AVATAR_GRAVATAR_BASE_URL = getattr(settings, 'AVATAR_GRAVATAR_BASE_URL', 'http://www.gravatar.com/avatar/') diff --git a/avatar/views.py b/avatar/views.py index 93c7704..328787d 100644 --- a/avatar/views.py +++ b/avatar/views.py @@ -72,11 +72,11 @@ def add(request, extra_context=None, next_override=None, if upload_avatar_form.is_valid(): avatar = Avatar(user=request.user, primary=True) image_file = request.FILES['avatar'] - + filename_parts = os.path.splitext(image_file.name) extension = filename_parts[1] - filename = u'%s%s' % (unicode(uuid.uuid4()), unicode(extension)) - + filename = '%s%s' % (uuid.uuid4(), extension) + avatar.avatar.save(filename, image_file) avatar.save() messages.success(request, _("Successfully uploaded a new avatar.")) diff --git a/avatar/testdata/test.tiff b/tests/data/test.tiff similarity index 100% rename from avatar/testdata/test.tiff rename to tests/data/test.tiff