Minor improvements on avatar/gravatar settings.

remotes/origin/enhancement/email-actions
Andrey Antukh 2014-09-29 12:09:30 +02:00 committed by Alejandro Alonso
parent bfecc26158
commit 2e3abe60f0
3 changed files with 27 additions and 27 deletions

View File

@ -100,7 +100,7 @@ MEDIA_URL = "http://localhost:8000/media/"
# Static url is not widelly used by taiga (only # Static url is not widelly used by taiga (only
# if admin is activated). # if admin is activated).
STATIC_URL = "http://localhost:8000/static/" STATIC_URL = "http://localhost:8000/static/"
ADMIN_MEDIA_PREFIX = "/static/admin/" ADMIN_MEDIA_PREFIX = "http://localhost:8000/static/admin/"
# Static configuration. # Static configuration.
MEDIA_ROOT = os.path.join(BASE_DIR, "media") MEDIA_ROOT = os.path.join(BASE_DIR, "media")
@ -309,8 +309,6 @@ SOUTH_MIGRATION_MODULES = {
DEFAULT_AVATAR_SIZE = 80 # 80x80 pixels DEFAULT_AVATAR_SIZE = 80 # 80x80 pixels
DEFAULT_BIG_AVATAR_SIZE = 300 # 300x300 pixels DEFAULT_BIG_AVATAR_SIZE = 300 # 300x300 pixels
DEFAULT_AVATAR_URL = 'user-noimage.png'
THUMBNAIL_ALIASES = { THUMBNAIL_ALIASES = {
'': { '': {
'avatar': {'size': (DEFAULT_AVATAR_SIZE, DEFAULT_AVATAR_SIZE), 'crop': True}, 'avatar': {'size': (DEFAULT_AVATAR_SIZE, DEFAULT_AVATAR_SIZE), 'crop': True},
@ -318,17 +316,9 @@ THUMBNAIL_ALIASES = {
}, },
} }
GRAVATAR_DEFAULT_OPTIONS = { # GRAVATAR_DEFAULT_AVATAR = "img/user-noimage.png"
'default': DEFAULT_AVATAR_URL, # default avatar to show if there's no gravatar image GRAVATAR_DEFAULT_AVATAR = ""
'size': DEFAULT_AVATAR_SIZE GRAVATAR_AVATAR_SIZE = DEFAULT_AVATAR_SIZE
}
try:
IN_DEVELOPMENT_SERVER = sys.argv[1] == 'runserver'
except IndexError:
IN_DEVELOPMENT_SERVER = False
ATTACHMENTS_TOKEN_SALT = "ATTACHMENTS_TOKEN_SALT"
TAGS_PREDEFINED_COLORS = ["#fce94f", "#edd400", "#c4a000", "#8ae234", TAGS_PREDEFINED_COLORS = ["#fce94f", "#edd400", "#c4a000", "#8ae234",
"#73d216", "#4e9a06", "#d3d7cf", "#fcaf3e", "#73d216", "#4e9a06", "#d3d7cf", "#fcaf3e",
@ -338,7 +328,6 @@ TAGS_PREDEFINED_COLORS = ["#fce94f", "#edd400", "#c4a000", "#8ae234",
"#2e3436",] "#2e3436",]
# NOTE: DON'T INSERT MORE SETTINGS AFTER THIS LINE # NOTE: DON'T INSERT MORE SETTINGS AFTER THIS LINE
TEST_RUNNER="django.test.runner.DiscoverRunner" TEST_RUNNER="django.test.runner.DiscoverRunner"
if "test" in sys.argv: if "test" in sys.argv:

View File

@ -27,18 +27,21 @@ urlpatterns = [
url(r'^admin/', include(admin.site.urls)), url(r'^admin/', include(admin.site.urls)),
] ]
def mediafiles_urlpatterns(prefix):
def mediafiles_urlpatterns():
""" """
Method for serve media files with runserver. Method for serve media files with runserver.
""" """
import re
from django.views.static import serve from django.views.static import serve
return [ return [
url(r'^%s(?P<path>.*)$' % 'media', serve, url(r'^%s(?P<path>.*)$' % re.escape(prefix.lstrip('/')), serve,
{'document_root': settings.MEDIA_ROOT}) {'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" handler500 = "taiga.base.api.views.api_server_error"

View File

@ -16,6 +16,8 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
import hashlib import hashlib
import copy
from urllib.parse import urlencode from urllib.parse import urlencode
from django.conf import settings from django.conf import settings
@ -30,16 +32,22 @@ def get_gravatar_url(email: str, **options) -> str:
:param options: Additional options to gravatar. :param options: Additional options to gravatar.
- `default` defines what image url to show if no gravatar exists - `default` defines what image url to show if no gravatar exists
- `size` defines the size of the avatar. - `size` defines the size of the avatar.
By default the `settings.GRAVATAR_DEFAULT_OPTIONS` are used.
:return: Gravatar url. :return: Gravatar url.
""" """
defaults = settings.GRAVATAR_DEFAULT_OPTIONS.copy()
default = defaults.get("default", None) params = copy.copy(options)
if default:
defaults["default"] = static(default) default_avatar = getattr(settings, "GRAVATAR_DEFAULT_AVATAR", None)
defaults.update(options) 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() 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 return url