From 89190dca6c7f226dafb81d8b5c1a496da00d2a89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Schneider?= Date: Tue, 28 Oct 2014 11:22:38 +0100 Subject: [PATCH] config: manage template and static with module_name only --- mandaye/config.py | 25 ++++++++++++++++--- mandaye/default-config.ini | 2 +- .../skel/example.module/default-config.ini | 2 +- mandaye/template.py | 3 +-- 4 files changed, 24 insertions(+), 8 deletions(-) diff --git a/mandaye/config.py b/mandaye/config.py index 25a833d..320eb3e 100644 --- a/mandaye/config.py +++ b/mandaye/config.py @@ -1,6 +1,7 @@ import os from ConfigParser import SafeConfigParser +from importlib import import_module from mandaye.exceptions import ImproperlyConfigured BASE_DIR = os.path.dirname(os.path.abspath(__file__)) @@ -90,18 +91,34 @@ if config.getboolean('debug', 'log_debug'): LOGGING['loggers'][logger_name]['level'] = 'DEBUG' ## PATH +module_name = config.get('dirs', 'module_name') +module_directory = None +if module_name: + try: + mandaye_project = import_module(module_name) + module_directory = os.path.dirname(mandaye_project.__file__) + except ImportError, e: + raise ImproperlyConfigured('Error importing %r from configuration', module_name) # Configuration directory config_root = config.get('dirs', 'config_root') -template_directory = os.path.join(BASE_DIR, 'templates') -# Templates directories +mandaye_template_directory = os.path.join(BASE_DIR, 'templates') +module_template_directory = None +if module_directory: + module_template_directory = os.path.join(module_directory, 'templates') templates_directories = [] +# Templates directories if config.get('dirs', 'templates_directories'): templates_directories = config.get('dirs', 'templates_directories').split(' ') -templates_directories.append(os.path.join(BASE_DIR, 'templates')) +if module_template_directory: + templates_directories.append(module_template_directory) +templates_directories.append(mandaye_template_directory) # Static url static_url = config.get('dirs', 'static_url') # Static folder -static_root = config.get('dirs', 'static_root') +if config.get('dirs', 'static_root'): + static_root = config.get('dirs', 'static_root') +else: + static_root = os.path.join(module_directory, 'static') # Data dir data_dir = config.get('dirs', 'data_dir') skel_root = os.path.join(BASE_DIR, 'skel') diff --git a/mandaye/default-config.ini b/mandaye/default-config.ini index c9aee2d..730a601 100644 --- a/mandaye/default-config.ini +++ b/mandaye/default-config.ini @@ -15,9 +15,9 @@ base_dn: ou=mandaye,dc=acompany,dc=org [dirs] config_root: %(base_dir)s/conf.d data_dir: %(base_dir)s/data -static_root: %(base_dir)s/mandaye/static static_url: /mandaye/static templates_directories: +static_root: [debug] debug: false diff --git a/mandaye/skel/example.module/default-config.ini b/mandaye/skel/example.module/default-config.ini index ad97bd1..2beb72f 100644 --- a/mandaye/skel/example.module/default-config.ini +++ b/mandaye/skel/example.module/default-config.ini @@ -14,9 +14,9 @@ bind_password: AdminPassword base_dn: ou=mandaye,dc=acompany,dc=org [dirs] +module_name: {project_name} config_root: %(base_dir)s/conf.d data_dir: %(base_dir)s/data -static_root: %(base_dir)s/{project_name}/static static_url: /mandaye/static templates_directories: diff --git a/mandaye/template.py b/mandaye/template.py index 9fcde94..a317fa4 100644 --- a/mandaye/template.py +++ b/mandaye/template.py @@ -4,8 +4,7 @@ from mako.template import Template from mandaye import config -templates_directories = config.templates_directories + [config.template_directory] -mylookup = TemplateLookup(directories=templates_directories, +mylookup = TemplateLookup(directories=config.templates_directories, input_encoding='utf-8') def serve_template(templatename, encoding='utf-8', **kwargs):