Minor improvements on avatar/gravatar settings.
parent
bfecc26158
commit
2e3abe60f0
|
@ -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:
|
||||||
|
|
|
@ -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 += staticfiles_urlpatterns(prefix="/static/")
|
||||||
urlpatterns += mediafiles_urlpatterns()
|
urlpatterns += mediafiles_urlpatterns(prefix="/media/")
|
||||||
|
|
||||||
handler500 = "taiga.base.api.views.api_server_error"
|
handler500 = "taiga.base.api.views.api_server_error"
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue