From 8816d075ca95f8d4bfd04f8bed1487cde3d27795 Mon Sep 17 00:00:00 2001 From: Felipe Martin Date: Wed, 28 May 2014 00:06:29 +0200 Subject: [PATCH] Added settings.configfile --- shelfzilla/settings/configfile.py | 93 +++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 shelfzilla/settings/configfile.py diff --git a/shelfzilla/settings/configfile.py b/shelfzilla/settings/configfile.py new file mode 100644 index 0000000..0a7002b --- /dev/null +++ b/shelfzilla/settings/configfile.py @@ -0,0 +1,93 @@ +import os +import sys +import dj_database_url +import toml +from .base import * + + +this_module = sys.modules[__name__] + +# Read configfile +with open(os.environ['APP_CONFIGFILE']) as conffile: + config = toml.loads(conffile.read()) + +# Installed Apps +INSTALLED_APPS += tuple(config['global']['installed_apps']) + +# Database +DATABASES = { + 'default': dj_database_url.parse(config['global']['database_url']) +} + +# Overwrite values +for key, value in config['overwrite'].iteritems(): + setattr(this_module, key.upper(), value) + +# Filer +FILER_STORAGES = { + 'public': { + 'main': { + 'ENGINE': 'django.core.files.storage.FileSystemStorage', + 'OPTIONS': { + 'location': os.path.abspath( + os.path.join(MEDIA_ROOT, 'filer/public/')), + 'base_url': '{}files/'.format(config['filer']['base_url']), + }, + 'UPLOAD_TO': 'shelfzilla.utils.filer_generate_randomized', + 'UPLOAD_TO_PREFIX': '', + }, + 'thumbnails': { + 'ENGINE': 'django.core.files.storage.FileSystemStorage', + 'OPTIONS': { + 'location': os.path.abspath( + os.path.join(MEDIA_ROOT, 'filer/public/')), + 'base_url': '{}files/'.format(config['filer']['base_url']), + }, + 'THUMBNAIL_OPTIONS': { + 'base_dir': 'thumbnails', + }, + 'UPLOAD_TO_PREFIX': '', + }, + }, + 'private': { + 'main': { + 'ENGINE': 'filer.storage.PrivateFileSystemStorage', + 'OPTIONS': { + 'location': os.path.abspath( + os.path.join(MEDIA_ROOT, 'filer/private')), + 'base_url': '/smedia/private/', + }, + 'UPLOAD_TO': 'shelfzilla.utils.filer_generate_randomized', + 'UPLOAD_TO_PREFIX': '', + }, + 'thumbnails': { + 'ENGINE': 'filer.storage.PrivateFileSystemStorage', + 'OPTIONS': { + 'location': os.path.abspath( + os.path.join(MEDIA_ROOT, 'filer/private_thumbnails')), + 'base_url': '/smedia/private_thumbnails/', + }, + 'THUMBNAIL_OPTIONS': {}, + }, + }, +} + +# Logging +LOGGING = { + 'version': 1, + 'disable_existing_loggers': False, + 'handlers': { + 'file': { + 'level': 'DEBUG', + 'class': 'logging.FileHandler', + 'filename': config['log']['logfile'], + }, + }, + 'loggers': { + 'django.request': { + 'handlers': ['file'], + 'level': 'DEBUG', + 'propagate': True, + }, + }, +}