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
# 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:

View File

@ -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<path>.*)$' % 'media', serve,
url(r'^%s(?P<path>.*)$' % 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"

View File

@ -16,6 +16,8 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
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