From 073e9a9c10f8a158f13b56ef38addc49d05b43ff Mon Sep 17 00:00:00 2001 From: Ross Poulton Date: Sat, 30 Jan 2010 06:03:40 +0800 Subject: [PATCH] Provide Gravatar default url in settings.AVATAR_GRAVATAR_DEFAULT - will be used by Gravatar if the user has no avatar for that email address. --- avatar/__init__.py | 3 ++- avatar/templatetags/avatar_tags.py | 9 ++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/avatar/__init__.py b/avatar/__init__.py index 14a29d1..e2337ea 100644 --- a/avatar/__init__.py +++ b/avatar/__init__.py @@ -11,6 +11,7 @@ AUTO_GENERATE_AVATAR_SIZES = getattr(settings, 'AUTO_GENERATE_AVATAR_SIZES', (80 AVATAR_RESIZE_METHOD = getattr(settings, 'AVATAR_RESIZE_METHOD', Image.ANTIALIAS) AVATAR_STORAGE_DIR = getattr(settings, 'AVATAR_STORAGE_DIR', 'avatars') 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', settings.MEDIA_URL + os.path.join(os.path.dirname(__file__), 'default.jpg')) @@ -23,4 +24,4 @@ def create_default_thumbnails(instance=None, created=False, **kwargs): if created: for size in AUTO_GENERATE_AVATAR_SIZES: instance.create_thumbnail(size) -signals.post_save.connect(create_default_thumbnails, sender=Avatar) \ No newline at end of file +signals.post_save.connect(create_default_thumbnails, sender=Avatar) diff --git a/avatar/templatetags/avatar_tags.py b/avatar/templatetags/avatar_tags.py index 7adabb9..217c6bf 100644 --- a/avatar/templatetags/avatar_tags.py +++ b/avatar/templatetags/avatar_tags.py @@ -5,7 +5,7 @@ from django.contrib.auth.models import User from django.utils.translation import ugettext as _ from django.utils.hashcompat import md5_constructor -from avatar import AVATAR_DEFAULT_URL, AVATAR_GRAVATAR_BACKUP +from avatar import AVATAR_DEFAULT_URL, AVATAR_GRAVATAR_BACKUP, AVATAR_GRAVATAR_DEFAULT register = template.Library() @@ -29,9 +29,12 @@ def avatar_url(user, size=80): return avatar.avatar_url(size) else: if AVATAR_GRAVATAR_BACKUP: + params = {'s': str(size)} + if AVATAR_GRAVATAR_DEFAULT: + params['d'] = AVATAR_GRAVATAR_DEFAULT return "http://www.gravatar.com/avatar/%s/?%s" % ( md5_constructor(user.email).hexdigest(), - urllib.urlencode({'s': str(size)}),) + urllib.urlencode(params)) else: return AVATAR_DEFAULT_URL register.simple_tag(avatar_url) @@ -57,4 +60,4 @@ def render_avatar(avatar, size=80): avatar.create_thumbnail(size) return """%s""" % ( avatar.avatar_url(size), str(avatar), size, size) -register.simple_tag(render_avatar) \ No newline at end of file +register.simple_tag(render_avatar)