Initial changes to support the new Django 1.6 project structure
This commit is contained in:
48
mayan/apps/smart_settings/api.py
Normal file
48
mayan/apps/smart_settings/api.py
Normal file
@@ -0,0 +1,48 @@
|
||||
from django.conf import settings as django_settings
|
||||
from django.utils.importlib import import_module
|
||||
|
||||
settings = {}
|
||||
|
||||
|
||||
def register_setting(namespace, module, name, global_name, default, exists=False, description=u'', hidden=False):
|
||||
# Create namespace if it doesn't exists
|
||||
settings.setdefault(namespace, [])
|
||||
|
||||
# If passed a string and not a module, import it
|
||||
if isinstance(module, basestring):
|
||||
module = import_module(module)
|
||||
|
||||
setting = {
|
||||
'module': module,
|
||||
'name': name,
|
||||
'global_name': global_name,
|
||||
'exists': exists,
|
||||
'description': description,
|
||||
'default': default,
|
||||
'hidden': hidden,
|
||||
}
|
||||
|
||||
# Avoid multiple appends
|
||||
if setting not in settings[namespace]:
|
||||
settings[namespace].append(setting)
|
||||
|
||||
# Get the global value
|
||||
value = getattr(django_settings, global_name, default)
|
||||
|
||||
# Create the local entity
|
||||
setattr(module, name, value)
|
||||
return value
|
||||
|
||||
|
||||
def register_settings(namespace, module, settings):
|
||||
for setting in settings:
|
||||
register_setting(
|
||||
namespace,
|
||||
module,
|
||||
setting['name'],
|
||||
setting['global_name'],
|
||||
setting['default'],
|
||||
setting.get('exists', False),
|
||||
setting.get('description', u''),
|
||||
setting.get('hidden', False),
|
||||
)
|
||||
Reference in New Issue
Block a user