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 %}