fmartingr
/
shelfzilla
Archived
1
0
Fork 0
This repository has been archived on 2021-06-29. You can view files and clone it, but cannot push or open issues or pull requests.
shelfzilla/shelfzilla/settings/configfile.py

105 lines
3.0 KiB
Python

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'])
# Middleware classes
if 'middleware_classes' in config['global']:
if 'prepend' in config['global']['middleware_classes']:
MIDDLEWARE_CLASSES = MIDDLEWARE_CLASSES + tuple(
config['global']['middleware_classes']['prepend']
)
if 'append' in config['glboal']['middleware_classes']:
MIDDLEWARE_CLASSES += tuple(
config['global']['middleware_classes']['append']
)
# 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,
},
},
}