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

135 lines
3.9 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['global']['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': True,
'formatters': {
'verbose': {
'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
},
},
'handlers': {
'file': {
'level': 'DEBUG',
'class': 'logging.FileHandler',
'filename': config['log']['logfile'],
},
'opbeat': {
'level': 'WARNING',
'class': 'opbeat.contrib.django.handlers.OpbeatHandler',
},
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'verbose'
}
},
'loggers': {
'django.request': {
'handlers': ['file'],
'level': 'DEBUG',
'propagate': True,
},
'django.db.backends': {
'level': 'ERROR',
'handlers': ['console'],
'propagate': False,
},
'shelfzilla': {
'level': 'WARNING',
'handlers': ['opbeat'],
'propagate': False,
},
# Log errors from the Opbeat module to the console (recommended)
'opbeat.errors': {
'level': 'ERROR',
'handlers': ['console'],
'propagate': False,
},
},
}