config: manage template and static with module_name only

This commit is contained in:
Jérôme Schneider 2014-10-28 11:22:38 +01:00
parent a51f3081f0
commit 89190dca6c
4 changed files with 24 additions and 8 deletions

View File

@ -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')

View File

@ -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

View File

@ -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:

View File

@ -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):