diff --git a/README.rst b/README.rst index 855f67e..bafafea 100644 --- a/README.rst +++ b/README.rst @@ -257,6 +257,17 @@ changed in your own ``settings.py``: **Default:** ``'flavour'`` +``FLAVOURS_TEMPLATE_NAMEGETTER`` + Callable that creates the template name searched, based on **flavor** and + provided **template name**. + + **Default:** callable equivalent of: + + .. code-block:: python + + def name_getter(flavor, template_name): + return u'%s/%s' % (flavor, template_name) + ``FLAVOURS_TEMPLATE_PREFIX`` This string will be prefixed to the template names when searching for flavoured templates. This is useful if you have many flavours and want to diff --git a/django_mobile/conf.py b/django_mobile/conf.py index 3ffc804..b69a621 100644 --- a/django_mobile/conf.py +++ b/django_mobile/conf.py @@ -24,6 +24,7 @@ class defaults(object): FLAVOURS = (u'full', u'mobile',) DEFAULT_MOBILE_FLAVOUR = u'mobile' FLAVOURS_TEMPLATE_PREFIX = u'' + FLAVOURS_TEMPLATE_NAMEGETTER = lambda _, flavour, template_name: u'%s/%s' % (flavour, template_name) FLAVOURS_GET_PARAMETER = u'flavour' FLAVOURS_STORAGE_BACKEND = u'cookie' FLAVOURS_COOKIE_KEY = u'flavour' @@ -39,4 +40,4 @@ class defaults(object): FLAVOURS_TEMPLATE_LOADERS.append(loader) FLAVOURS_TEMPLATE_LOADERS = tuple(FLAVOURS_TEMPLATE_LOADERS) -settings = SettingsProxy(django_settings, defaults) +settings = SettingsProxy(django_settings, defaults()) diff --git a/django_mobile/loader.py b/django_mobile/loader.py index 79b2270..8353325 100644 --- a/django_mobile/loader.py +++ b/django_mobile/loader.py @@ -20,7 +20,7 @@ def __init__(self, *args, **kwargs): super(BaseLoader, self).__init__(*args, **kwargs) def prepare_template_name(self, template_name): - template_name = u'%s/%s' % (get_flavour(), template_name) + template_name = settings.FLAVOURS_TEMPLATE_NAMEGETTER(get_flavour(), template_name) if settings.FLAVOURS_TEMPLATE_PREFIX: template_name = settings.FLAVOURS_TEMPLATE_PREFIX + template_name return template_name