mirror of
https://github.com/jazzband/django-avatar.git
synced 2026-03-16 22:20:30 +00:00
Merge remote-tracking branch 'chadpaulson/master'
Conflicts: MANIFEST.in avatar/models.py avatar/settings.py avatar/templatetags/avatar_tags.py avatar/views.py setup.py
This commit is contained in:
commit
68731b6bc6
5 changed files with 23 additions and 4 deletions
|
|
@ -4,4 +4,5 @@ include CONTRIBUTORS.txt
|
|||
include avatar/media/avatar/img/default.jpg
|
||||
recursive-include docs *
|
||||
recursive-include avatar/templates *.html *.txt
|
||||
recursive-include avatar/locale/*/LC_MESSAGES *.mo *.po
|
||||
recursive-include avatar/locale/*/LC_MESSAGES *.mo *.po
|
||||
recursive-include avatar/testdata *
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ from avatar.settings import (AVATAR_STORAGE_DIR, AVATAR_RESIZE_METHOD,
|
|||
AVATAR_MAX_AVATARS_PER_USER, AVATAR_THUMB_FORMAT,
|
||||
AVATAR_HASH_USERDIRNAMES, AVATAR_HASH_FILENAMES,
|
||||
AVATAR_THUMB_QUALITY, AUTO_GENERATE_AVATAR_SIZES,
|
||||
AVATAR_STORAGE)
|
||||
AVATAR_STORAGE, AVATAR_CLEANUP_DELETED)
|
||||
|
||||
avatar_storage = get_storage_class(AVATAR_STORAGE)()
|
||||
|
||||
|
|
@ -64,6 +64,7 @@ def avatar_file_path(instance=None, filename=None, size=None, ext=None):
|
|||
tmppath.append(os.path.basename(filename))
|
||||
return os.path.join(*tmppath)
|
||||
|
||||
|
||||
def find_extension(format):
|
||||
format = format.lower()
|
||||
|
||||
|
|
@ -72,11 +73,14 @@ def find_extension(format):
|
|||
|
||||
return format
|
||||
|
||||
|
||||
class Avatar(models.Model):
|
||||
user = models.ForeignKey(User)
|
||||
primary = models.BooleanField(default=False)
|
||||
avatar = models.ImageField(max_length=1024,
|
||||
upload_to=avatar_file_path, storage=avatar_storage, blank=True)
|
||||
upload_to=avatar_file_path,
|
||||
storage=avatar_storage,
|
||||
blank=True)
|
||||
date_uploaded = models.DateTimeField(default=now)
|
||||
|
||||
def __unicode__(self):
|
||||
|
|
@ -147,5 +151,15 @@ def create_default_thumbnails(sender, instance, created=False, **kwargs):
|
|||
instance.create_thumbnail(size)
|
||||
|
||||
|
||||
def remove_avatar_images(instance=None, **kwargs):
|
||||
for size in AUTO_GENERATE_AVATAR_SIZES:
|
||||
if instance.thumbnail_exists(size):
|
||||
instance.avatar.storage.delete(instance.avatar_name(size))
|
||||
instance.avatar.storage.delete(instance.avatar.name)
|
||||
|
||||
|
||||
signals.post_save.connect(create_default_thumbnails, sender=Avatar)
|
||||
signals.post_delete.connect(invalidate_avatar_cache, sender=Avatar)
|
||||
|
||||
if AVATAR_CLEANUP_DELETED:
|
||||
signals.post_delete.connect(remove_avatar_images, sender=Avatar)
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ AVATAR_DEFAULT_SIZE = getattr(settings, 'AVATAR_DEFAULT_SIZE', 80)
|
|||
AUTO_GENERATE_AVATAR_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_SSL = getattr(settings, 'AVATAR_GRAVATAR_SSL', False)
|
||||
AVATAR_GRAVATAR_BACKUP = getattr(settings, 'AVATAR_GRAVATAR_BACKUP', True)
|
||||
AVATAR_GRAVATAR_DEFAULT = getattr(settings, 'AVATAR_GRAVATAR_DEFAULT', None)
|
||||
AVATAR_DEFAULT_URL = getattr(settings, 'AVATAR_DEFAULT_URL', 'avatar/img/default.jpg')
|
||||
|
|
@ -23,3 +24,4 @@ AVATAR_HASH_USERDIRNAMES = getattr(settings, 'AVATAR_HASH_USERDIRNAMES', False)
|
|||
AVATAR_ALLOWED_FILE_EXTS = getattr(settings, 'AVATAR_ALLOWED_FILE_EXTS', None)
|
||||
AVATAR_CACHE_TIMEOUT = getattr(settings, 'AVATAR_CACHE_TIMEOUT', 60 * 60)
|
||||
AVATAR_STORAGE = getattr(settings, 'AVATAR_STORAGE', settings.DEFAULT_FILE_STORAGE)
|
||||
AVATAR_CLEAN_REMOVED = getattr(settings, 'AVATAR_CLEAN_REMOVED', False)
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ from django.template import RequestContext
|
|||
from django.utils.translation import ugettext as _
|
||||
from django.views.decorators.csrf import csrf_exempt
|
||||
|
||||
from django.contrib import messages
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.contrib.auth.models import User
|
||||
from django.contrib import messages
|
||||
|
|
|
|||
3
setup.py
3
setup.py
|
|
@ -168,7 +168,8 @@ setup(
|
|||
'templates/notification/*/*.*',
|
||||
'templates/avatar/*.html',
|
||||
'locale/*/LC_MESSAGES/*',
|
||||
'media/avatar/img/default.jpg'
|
||||
'media/avatar/img/default.jpg',
|
||||
'testdata/*',
|
||||
],
|
||||
},
|
||||
include_package_data=True,
|
||||
|
|
|
|||
Loading…
Reference in a new issue