diff --git a/src/c3nav/api/templates/rest_framework/api.html b/src/c3nav/api/templates/rest_framework/api.html index 034682a0..36b273ca 100644 --- a/src/c3nav/api/templates/rest_framework/api.html +++ b/src/c3nav/api/templates/rest_framework/api.html @@ -9,6 +9,9 @@ {% block meta %} +{% if favicon %} + +{% endif %} {% endblock %} {% block style %} diff --git a/src/c3nav/editor/templates/editor/base.html b/src/c3nav/editor/templates/editor/base.html index c2620f99..376c20c0 100644 --- a/src/c3nav/editor/templates/editor/base.html +++ b/src/c3nav/editor/templates/editor/base.html @@ -7,6 +7,9 @@ {% trans 'c3nav map editor' %} + {% if favicon %} + + {% endif %} {% compress css %} diff --git a/src/c3nav/settings.py b/src/c3nav/settings.py index f4efeff2..4318ace9 100644 --- a/src/c3nav/settings.py +++ b/src/c3nav/settings.py @@ -280,7 +280,7 @@ TEMPLATES = [ 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', - 'c3nav.site.context_processors.header_logo', + 'c3nav.site.context_processors.logos', ], 'loaders': template_loaders }, @@ -292,7 +292,7 @@ STATICFILES_FINDERS = ( 'django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder', 'compressor.finders.CompressorFinder', - 'c3nav.site.finders.HeaderLogoFinder', + 'c3nav.site.finders.LogoFinder', ) BOOTSTRAP3 = { @@ -315,7 +315,8 @@ COMPRESS_CSS_FILTERS = ( ) HEADER_LOGO = config.get('c3nav', 'header_logo', fallback=None) -HEADER_LOGO_NAME = ('logo/'+os.path.basename(HEADER_LOGO)) if HEADER_LOGO else None +FAVICON = config.get('c3nav', 'favicon', fallback=None) + PRIMARY_COLOR = config.get('c3nav', 'primary_color', fallback='') HEADER_BACKGROUND_COLOR = config.get('c3nav', 'header_background_color', fallback='') HEADER_TEXT_COLOR = config.get('c3nav', 'header_text_color', fallback='') diff --git a/src/c3nav/site/context_processors.py b/src/c3nav/site/context_processors.py index 2a7f54ce..22b13703 100644 --- a/src/c3nav/site/context_processors.py +++ b/src/c3nav/site/context_processors.py @@ -1,7 +1,12 @@ -from django.conf import settings +import os + +from c3nav.site.finders import logo_paths + +logos_result = { + prefix: os.path.join(prefix, os.path.basename(path)) if path else None + for prefix, path in logo_paths.items() +} -def header_logo(request): - return { - 'header_logo': settings.HEADER_LOGO_NAME - } +def logos(request): + return logos_result diff --git a/src/c3nav/site/finders.py b/src/c3nav/site/finders.py index 9764e0e4..eb280b4f 100644 --- a/src/c3nav/site/finders.py +++ b/src/c3nav/site/finders.py @@ -4,17 +4,33 @@ from django.conf import settings from django.contrib.staticfiles.finders import BaseFinder from django.core.files.storage import FileSystemStorage +logo_paths = { + 'header_logo': settings.HEADER_LOGO, + 'favicon': settings.FAVICON, +} -class HeaderLogoFinder(BaseFinder): +logofinder_results = { + os.path.join(prefix, os.path.basename(path)): path + for prefix, path in logo_paths.items() +} + + +class LogoFinder(BaseFinder): def find(self, path, all=False): - if path == settings.HEADER_LOGO_NAME: - return [settings.HEADER_LOGO] if all else settings.HEADER_LOGO - return [] + result = logofinder_results.get(path) + if not result: + return [] + if all: + return [result] + return result def list(self, ignore_patterns): - if not settings.HEADER_LOGO: - return [] - basedir, filename = os.path.split(settings.HEADER_LOGO) - storage = FileSystemStorage(location=basedir) - storage.prefix = 'logo' - return [(filename, storage)] + result = [] + for prefix, path in logo_paths.items(): + if not path: + continue + basedir, filename = os.path.split(path) + storage = FileSystemStorage(location=basedir) + storage.prefix = prefix + result.append((filename, storage)) + return result diff --git a/src/c3nav/site/templates/site/base.html b/src/c3nav/site/templates/site/base.html index 61f3c727..5926ae50 100644 --- a/src/c3nav/site/templates/site/base.html +++ b/src/c3nav/site/templates/site/base.html @@ -7,6 +7,9 @@ {% block title %}c3nav{% endblock %} + {% if favicon %} + + {% endif %} {% compress css %}