From 2e3abe60f027ab65b197d281d56cb700c4824592 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 29 Sep 2014 12:09:30 +0200 Subject: [PATCH] Minor improvements on avatar/gravatar settings. --- settings/common.py | 19 ++++--------------- taiga/urls.py | 13 ++++++++----- taiga/users/gravatar.py | 22 +++++++++++++++------- 3 files changed, 27 insertions(+), 27 deletions(-) diff --git a/settings/common.py b/settings/common.py index 7d5f11b0..11cda8e2 100644 --- a/settings/common.py +++ b/settings/common.py @@ -100,7 +100,7 @@ MEDIA_URL = "http://localhost:8000/media/" # Static url is not widelly used by taiga (only # if admin is activated). STATIC_URL = "http://localhost:8000/static/" -ADMIN_MEDIA_PREFIX = "/static/admin/" +ADMIN_MEDIA_PREFIX = "http://localhost:8000/static/admin/" # Static configuration. MEDIA_ROOT = os.path.join(BASE_DIR, "media") @@ -309,8 +309,6 @@ SOUTH_MIGRATION_MODULES = { DEFAULT_AVATAR_SIZE = 80 # 80x80 pixels DEFAULT_BIG_AVATAR_SIZE = 300 # 300x300 pixels -DEFAULT_AVATAR_URL = 'user-noimage.png' - THUMBNAIL_ALIASES = { '': { 'avatar': {'size': (DEFAULT_AVATAR_SIZE, DEFAULT_AVATAR_SIZE), 'crop': True}, @@ -318,17 +316,9 @@ THUMBNAIL_ALIASES = { }, } -GRAVATAR_DEFAULT_OPTIONS = { - 'default': DEFAULT_AVATAR_URL, # default avatar to show if there's no gravatar image - 'size': DEFAULT_AVATAR_SIZE -} - -try: - IN_DEVELOPMENT_SERVER = sys.argv[1] == 'runserver' -except IndexError: - IN_DEVELOPMENT_SERVER = False - -ATTACHMENTS_TOKEN_SALT = "ATTACHMENTS_TOKEN_SALT" +# GRAVATAR_DEFAULT_AVATAR = "img/user-noimage.png" +GRAVATAR_DEFAULT_AVATAR = "" +GRAVATAR_AVATAR_SIZE = DEFAULT_AVATAR_SIZE TAGS_PREDEFINED_COLORS = ["#fce94f", "#edd400", "#c4a000", "#8ae234", "#73d216", "#4e9a06", "#d3d7cf", "#fcaf3e", @@ -338,7 +328,6 @@ TAGS_PREDEFINED_COLORS = ["#fce94f", "#edd400", "#c4a000", "#8ae234", "#2e3436",] # NOTE: DON'T INSERT MORE SETTINGS AFTER THIS LINE - TEST_RUNNER="django.test.runner.DiscoverRunner" if "test" in sys.argv: diff --git a/taiga/urls.py b/taiga/urls.py index aba8f1ba..f2de3105 100644 --- a/taiga/urls.py +++ b/taiga/urls.py @@ -27,18 +27,21 @@ urlpatterns = [ url(r'^admin/', include(admin.site.urls)), ] - -def mediafiles_urlpatterns(): +def mediafiles_urlpatterns(prefix): """ Method for serve media files with runserver. """ + import re from django.views.static import serve + return [ - url(r'^%s(?P.*)$' % 'media', serve, + url(r'^%s(?P.*)$' % re.escape(prefix.lstrip('/')), serve, {'document_root': settings.MEDIA_ROOT}) ] +if settings.DEBUG: + # Hardcoded only for development server + urlpatterns += staticfiles_urlpatterns(prefix="/static/") + urlpatterns += mediafiles_urlpatterns(prefix="/media/") -urlpatterns += staticfiles_urlpatterns(prefix="/static/") -urlpatterns += mediafiles_urlpatterns() handler500 = "taiga.base.api.views.api_server_error" diff --git a/taiga/users/gravatar.py b/taiga/users/gravatar.py index fc3a8661..8b19789e 100644 --- a/taiga/users/gravatar.py +++ b/taiga/users/gravatar.py @@ -16,6 +16,8 @@ # along with this program. If not, see . import hashlib +import copy + from urllib.parse import urlencode from django.conf import settings @@ -30,16 +32,22 @@ def get_gravatar_url(email: str, **options) -> str: :param options: Additional options to gravatar. - `default` defines what image url to show if no gravatar exists - `size` defines the size of the avatar. - By default the `settings.GRAVATAR_DEFAULT_OPTIONS` are used. :return: Gravatar url. """ - defaults = settings.GRAVATAR_DEFAULT_OPTIONS.copy() - default = defaults.get("default", None) - if default: - defaults["default"] = static(default) - defaults.update(options) + + params = copy.copy(options) + + default_avatar = getattr(settings, "GRAVATAR_DEFAULT_AVATAR", None) + default_size = getattr(settings, "GRAVATAR_AVATAR_SIZE", None) + + if default_avatar: + params["default"] = static(default) + + if default_size: + params["size"] = default_size + email_hash = hashlib.md5(email.lower().encode()).hexdigest() - url = GRAVATAR_BASE_URL.format(email_hash, urlencode(defaults)) + url = GRAVATAR_BASE_URL.format(email_hash, urlencode(params)) return url