Converted whole project to a smarter method of defining app settings
This commit is contained in:
@@ -1,14 +1,33 @@
|
||||
from django.conf import settings
|
||||
"""Configuration options for the common app"""
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from main.api import register_setting
|
||||
|
||||
from common.literals import PAGE_SIZE_LETTER, PAGE_ORIENTATION_PORTRAIT
|
||||
|
||||
TEMPORARY_DIRECTORY = getattr(settings, 'COMMON_TEMPORARY_DIRECTORY', u'/tmp')
|
||||
TEMPORARY_DIRECTORY = register_setting(
|
||||
namespace=u'common',
|
||||
module=u'common.conf.settings',
|
||||
name=u'TEMPORARY_DIRECTORY',
|
||||
global_name=u'COMMON_TEMPORARY_DIRECTORY',
|
||||
default=u'/tmp',
|
||||
description=_(u'Temporary directory used site wide to store thumbnails, previews and temporary files. If none is specified, one will be created using tempfile.mkdtemp()'),
|
||||
exists=True
|
||||
)
|
||||
|
||||
setting_description = {
|
||||
'COMMON_TEMPORARY_DIRECTORY': _(u'Temporary directory used site wide to store thumbnails, previews and temporary files. If none is specified, one will be created using tempfile.mkdtemp()')
|
||||
}
|
||||
DEFAULT_PAPER_SIZE = register_setting(
|
||||
namespace=u'common',
|
||||
module=u'common.conf.settings',
|
||||
name=u'DEFAULT_PAPER_SIZE',
|
||||
global_name=u'COMMON_DEFAULT_PAPER_SIZE',
|
||||
default=PAGE_SIZE_LETTER,
|
||||
)
|
||||
|
||||
# Printing
|
||||
DEFAULT_PAPER_SIZE = getattr(settings, 'COMMON_DEFAULT_PAPER_SIZE', PAGE_SIZE_LETTER)
|
||||
DEFAULT_PAGE_ORIENTATION = getattr(settings, 'COMMON_DEFAULT_PAGE_ORIENTATION', PAGE_ORIENTATION_PORTRAIT)
|
||||
DEFAULT_PAGE_ORIENTATION = register_setting(
|
||||
namespace=u'common',
|
||||
module=u'common.conf.settings',
|
||||
name=u'DEFAULT_PAGE_ORIENTATION',
|
||||
global_name=u'COMMON_DEFAULT_PAGE_ORIENTATION',
|
||||
default=PAGE_ORIENTATION_PORTRAIT,
|
||||
)
|
||||
|
||||
@@ -1,26 +1,23 @@
|
||||
from django.conf import settings
|
||||
"""Configuration options for the converter app"""
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from main.api import register_settings
|
||||
|
||||
IM_CONVERT_PATH = getattr(settings, 'CONVERTER_IM_ONVERT_PATH', u'/usr/bin/convert')
|
||||
IM_IDENTIFY_PATH = getattr(settings, 'CONVERTER_IM_IDENTIFY_PATH', u'/usr/bin/identify')
|
||||
UNPAPER_PATH = getattr(settings, 'CONVERTER_UNPAPER_PATH', u'/usr/bin/unpaper')
|
||||
GM_PATH = getattr(settings, 'CONVERTER_GM_PATH', u'/usr/bin/gm')
|
||||
GM_SETTINGS = getattr(settings, 'CONVERTER_GM_SETTINGS', u'')
|
||||
GRAPHICS_BACKEND = getattr(settings, 'CONVERTER_GRAPHICS_BACKEND', u'converter.backends.imagemagick')
|
||||
UNOCONV_PATH = getattr(settings, 'CONVERTER_UNOCONV_PATH', u'/usr/bin/unoconv')
|
||||
|
||||
OCR_OPTIONS = getattr(settings, 'CONVERTER_OCR_OPTIONS', u'-colorspace Gray -depth 8 -resample 200x200')
|
||||
DEFAULT_OPTIONS = getattr(settings, 'CONVERTER_DEFAULT_OPTIONS', u'')
|
||||
LOW_QUALITY_OPTIONS = getattr(settings, 'CONVERTER_LOW_QUALITY_OPTIONS', u'')
|
||||
HIGH_QUALITY_OPTIONS = getattr(settings, 'CONVERTER_HIGH_QUALITY_OPTIONS', u'-density 400')
|
||||
PRINT_QUALITY_OPTIONS = getattr(settings, 'CONVERTER_HIGH_QUALITY_OPTIONS', u'-density 500')
|
||||
|
||||
|
||||
setting_description = {
|
||||
'CONVERTER_IM_CONVERT_PATH': _(u'File path to imagemagick\'s convert program.'),
|
||||
'CONVERTER_IM_IDENTIFY_PATH': _(u'File path to imagemagick\'s identify program.'),
|
||||
'CONVERTER_GM_PATH': _(u'File path to graphicsmagick\'s program.'),
|
||||
'CONVERTER_UNPAPER_PATH': _(u'File path to unpaper program.'),
|
||||
'CONVERTER_GRAPHICS_BACKEND': _(u'Graphics conversion backend to use. Options are: converter.backends.imagemagick and converter.backends.graphicsmagick.'),
|
||||
}
|
||||
register_settings(
|
||||
namespace=u'converter',
|
||||
module=u'converter.conf.settings',
|
||||
settings=[
|
||||
{'name': u'IM_CONVERT_PATH', 'global_name': u'CONVERTER_IM_CONVERT_PATH', 'default': u'/usr/bin/convert', 'description': _(u'File path to imagemagick\'s convert program.'), 'exists': True},
|
||||
{'name': u'IM_IDENTIFY_PATH', 'global_name': u'CONVERTER_IM_IDENTIFY_PATH', 'default': u'/usr/bin/identify', 'description': _(u'File path to imagemagick\'s identify program.'), 'exists': True},
|
||||
{'name': u'UNPAPER_PATH', 'global_name': u'CONVERTER_UNPAPER_PATH', 'default': u'/usr/bin/unpaper', 'description': _(u'File path to unpaper program.'), 'exists': True},
|
||||
{'name': u'GM_PATH', 'global_name': u'CONVERTER_GM_PATH', 'default': u'/usr/bin/gm', 'description': _(u'File path to graphicsmagick\'s program.'), 'exists': True},
|
||||
{'name': u'GM_SETTINGS', 'global_name': u'CONVERTER_GM_SETTINGS', 'default': u''},
|
||||
{'name': u'GRAPHICS_BACKEND', 'global_name': u'CONVERTER_GRAPHICS_BACKEND', 'default': u'converter.backends.imagemagick', 'description': _(u'Graphics conversion backend to use. Options are: converter.backends.imagemagick and converter.backends.graphicsmagick.')},
|
||||
{'name': u'UNOCONV_PATH', 'global_name': u'CONVERTER_UNOCONV_PATH', 'default': u'/usr/bin/unoconv', 'exists': True},
|
||||
{'name': u'OCR_OPTIONS', 'global_name': u'CONVERTER_OCR_OPTIONS', 'default': u'-colorspace Gray -depth 8 -resample 200x200'},
|
||||
{'name': u'DEFAULT_OPTIONS', 'global_name': u'CONVERTER_DEFAULT_OPTIONS', 'default': u''},
|
||||
{'name': u'LOW_QUALITY_OPTIONS', 'global_name': u'CONVERTER_LOW_QUALITY_OPTIONS', 'default': u''},
|
||||
{'name': u'HIGH_QUALITY_OPTIONS', 'global_name': u'CONVERTER_HIGH_QUALITY_OPTIONS', 'default': u'-density 400'},
|
||||
{'name': u'PRINT_QUALITY_OPTIONS', 'global_name': u'CONVERTER_HIGH_QUALITY_OPTIONS', 'default': u'-density 500'},
|
||||
]
|
||||
)
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
"""Configuration options for the documents app"""
|
||||
|
||||
import datetime
|
||||
import hashlib
|
||||
import uuid
|
||||
|
||||
from django.conf import settings
|
||||
from django.contrib.auth.models import User
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.contrib.auth.models import User
|
||||
|
||||
from common.utils import proper_name
|
||||
|
||||
from storage.backends.filebasedstorage import FileBasedStorage
|
||||
from main.api import register_settings
|
||||
|
||||
|
||||
def default_checksum(x):
|
||||
@@ -36,45 +37,42 @@ available_indexing_functions = {
|
||||
'proper_name': proper_name
|
||||
}
|
||||
|
||||
# Definition
|
||||
AVAILABLE_FUNCTIONS = getattr(settings, 'DOCUMENTS_METADATA_AVAILABLE_FUNCTIONS', default_available_functions)
|
||||
AVAILABLE_MODELS = getattr(settings, 'DOCUMENTS_METADATA_AVAILABLE_MODELS', default_available_models)
|
||||
AVAILABLE_INDEXING_FUNCTIONS = getattr(settings, 'DOCUMENTS_INDEXING_AVAILABLE_FUNCTIONS', available_indexing_functions)
|
||||
|
||||
# Upload
|
||||
USE_STAGING_DIRECTORY = getattr(settings, 'DOCUMENTS_USE_STAGING_DIRECTORY', False)
|
||||
STAGING_DIRECTORY = getattr(settings, 'DOCUMENTS_STAGING_DIRECTORY', u'/tmp/mayan/staging')
|
||||
DELETE_STAGING_FILE_AFTER_UPLOAD = getattr(settings, 'DOCUMENTS_DELETE_STAGING_FILE_AFTER_UPLOAD', False)
|
||||
STAGING_FILES_PREVIEW_SIZE = getattr(settings, 'DOCUMENTS_STAGING_FILES_PREVIEW_SIZE', '640x480')
|
||||
ENABLE_SINGLE_DOCUMENT_UPLOAD = getattr(settings, 'DOCUMENTS_ENABLE_SINGLE_DOCUMENT_UPLOAD', True)
|
||||
UNCOMPRESS_COMPRESSED_LOCAL_FILES = getattr(settings, 'DOCUMENTS_UNCOMPRESS_COMPRESSED_LOCAL_FILES', True)
|
||||
UNCOMPRESS_COMPRESSED_STAGING_FILES = getattr(settings, 'DOCUMENTS_UNCOMPRESS_COMPRESSED_STAGING_FILES', True)
|
||||
|
||||
# Saving
|
||||
CHECKSUM_FUNCTION = getattr(settings, 'DOCUMENTS_CHECKSUM_FUNCTION', default_checksum)
|
||||
UUID_FUNCTION = getattr(settings, 'DOCUMENTS_UUID_FUNCTION', default_uuid)
|
||||
|
||||
# Storage
|
||||
STORAGE_BACKEND = getattr(settings, 'DOCUMENTS_STORAGE_BACKEND', FileBasedStorage)
|
||||
|
||||
# Usage
|
||||
PREVIEW_SIZE = getattr(settings, 'DOCUMENTS_PREVIEW_SIZE', '640x480')
|
||||
PRINT_SIZE = getattr(settings, 'DOCUMENTS_PREVIEW_SIZE', '1400')
|
||||
MULTIPAGE_PREVIEW_SIZE = getattr(settings, 'DOCUMENTS_MULTIPAGE_PREVIEW_SIZE', '160x120')
|
||||
THUMBNAIL_SIZE = getattr(settings, 'DOCUMENTS_THUMBNAIL_SIZE', '50x50')
|
||||
DISPLAY_SIZE = getattr(settings, 'DOCUMENTS_DISPLAY_SIZE', '1200')
|
||||
RECENT_COUNT = getattr(settings, 'DOCUMENTS_RECENT_COUNT', 40)
|
||||
ZOOM_PERCENT_STEP = getattr(settings, 'DOCUMENTS_ZOOM_PERCENT_STEP', 50)
|
||||
ZOOM_MAX_LEVEL = getattr(settings, 'DOCUMENTS_ZOOM_MAX_LEVEL', 200)
|
||||
ZOOM_MIN_LEVEL = getattr(settings, 'DOCUMENTS_ZOOM_MIN_LEVEL', 50)
|
||||
ROTATION_STEP = getattr(settings, 'DOCUMENTS_ROTATION_STEP', 90)
|
||||
|
||||
# Transformations
|
||||
AVAILABLE_TRANSFORMATIONS = getattr(settings, 'DOCUMENTS_AVAILABLE_TRANSFORMATIONS', available_transformations)
|
||||
DEFAULT_TRANSFORMATIONS = getattr(settings, 'DOCUMENTS_DEFAULT_TRANSFORMATIONS', [])
|
||||
|
||||
#Groups
|
||||
GROUP_SHOW_EMPTY = getattr(settings, 'DOCUMENTS_GROUP_SHOW_EMPTY', True)
|
||||
|
||||
setting_description = {
|
||||
}
|
||||
register_settings(
|
||||
namespace=u'documents',
|
||||
module=u'documents.conf.settings',
|
||||
settings=[
|
||||
# Definition
|
||||
{'name': u'AVAILABLE_FUNCTIONS', 'global_name': u'DOCUMENTS_METADATA_AVAILABLE_FUNCTIONS', 'default': default_available_functions},
|
||||
{'name': u'AVAILABLE_MODELS', 'global_name': u'DOCUMENTS_METADATA_AVAILABLE_MODELS', 'default': default_available_models},
|
||||
{'name': u'AVAILABLE_INDEXING_FUNCTIONS', 'global_name': u'DOCUMENTS_INDEXING_AVAILABLE_FUNCTIONS', 'default': available_indexing_functions},
|
||||
# Upload
|
||||
{'name': u'USE_STAGING_DIRECTORY', 'global_name': u'DOCUMENTS_USE_STAGING_DIRECTORY', 'default': False},
|
||||
{'name': u'STAGING_DIRECTORY', 'global_name': u'DOCUMENTS_STAGING_DIRECTORY', 'default': u'/tmp/mayan/staging', 'exists': True},
|
||||
{'name': u'DELETE_STAGING_FILE_AFTER_UPLOAD', 'global_name': u'DOCUMENTS_DELETE_STAGING_FILE_AFTER_UPLOAD', 'default': False},
|
||||
{'name': u'STAGING_FILES_PREVIEW_SIZE', 'global_name': u'DOCUMENTS_STAGING_FILES_PREVIEW_SIZE', 'default': u'640x480'},
|
||||
{'name': u'ENABLE_SINGLE_DOCUMENT_UPLOAD', 'global_name': u'DOCUMENTS_ENABLE_SINGLE_DOCUMENT_UPLOAD', 'default': True},
|
||||
{'name': u'UNCOMPRESS_COMPRESSED_LOCAL_FILES', 'global_name': u'DOCUMENTS_UNCOMPRESS_COMPRESSED_LOCAL_FILES', 'default': True},
|
||||
{'name': u'UNCOMPRESS_COMPRESSED_STAGING_FILES', 'global_name': u'DOCUMENTS_UNCOMPRESS_COMPRESSED_STAGING_FILES', 'default': True},
|
||||
# Saving
|
||||
{'name': u'CHECKSUM_FUNCTION', 'global_name': u'DOCUMENTS_CHECKSUM_FUNCTION', 'default': default_checksum},
|
||||
{'name': u'UUID_FUNCTION', 'global_name': u'DOCUMENTS_UUID_FUNCTION', 'default': default_uuid},
|
||||
# Storage
|
||||
{'name': u'STORAGE_BACKEND', 'global_name': u'DOCUMENTS_STORAGE_BACKEND', 'default': FileBasedStorage},
|
||||
# Transformations
|
||||
{'name': u'AVAILABLE_TRANSFORMATIONS', 'global_name': u'DOCUMENTS_AVAILABLE_TRANSFORMATIONS', 'default': available_transformations},
|
||||
{'name': u'DEFAULT_TRANSFORMATIONS', 'global_name': u'DOCUMENTS_DEFAULT_TRANSFORMATIONS', 'default': []},
|
||||
# Usage
|
||||
{'name': u'PREVIEW_SIZE', 'global_name': u'DOCUMENTS_PREVIEW_SIZE', 'default': u'640x480'},
|
||||
{'name': u'PRINT_SIZE', 'global_name': u'DOCUMENTS_PRINT_SIZE', 'default': u'1400'},
|
||||
{'name': u'MULTIPAGE_PREVIEW_SIZE', 'global_name': u'DOCUMENTS_MULTIPAGE_PREVIEW_SIZE', 'default': u'160x120'},
|
||||
{'name': u'THUMBNAIL_SIZE', 'global_name': u'DOCUMENTS_THUMBNAIL_SIZE', 'default': u'50x50'},
|
||||
{'name': u'DISPLAY_SIZE', 'global_name': u'DOCUMENTS_DISPLAY_SIZE', 'default': u'1200'},
|
||||
{'name': u'RECENT_COUNT', 'global_name': u'DOCUMENTS_RECENT_COUNT', 'default': 40, 'description': _(u'Maximum number of recent (created, edited, viewed) documents to remember per user.')},
|
||||
{'name': u'ZOOM_PERCENT_STEP', 'global_name': u'DOCUMENTS_ZOOM_PERCENT_STEP', 'default': 50, 'description': _(u'Amount in percent zoom in or out a document page per user interaction.')},
|
||||
{'name': u'ZOOM_MAX_LEVEL', 'global_name': u'DOCUMENTS_ZOOM_MAX_LEVEL', 'default': 200, 'description': _(u'Maximum amount in percent (%) to allow user to zoom in a document page interactively.')},
|
||||
{'name': u'ZOOM_MIN_LEVEL', 'global_name': u'DOCUMENTS_ZOOM_MIN_LEVEL', 'default': 50, 'description': _(u'Minimum amount in percent (%) to allow user to zoom out a document page interactively.')},
|
||||
{'name': u'ROTATION_STEP', 'global_name': u'DOCUMENTS_ROTATION_STEP', 'default': 90, 'description': _(u'Amount in degrees to rotate a document page per user interaction.')},
|
||||
#Groups
|
||||
{'name': u'GROUP_SHOW_EMPTY', 'global_name': u'DOCUMENTS_GROUP_SHOW_EMPTY', 'default': True},
|
||||
]
|
||||
)
|
||||
|
||||
@@ -1,4 +1,15 @@
|
||||
from django.conf import settings
|
||||
"""Configuration options for the dynamic_search app"""
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from main.api import register_settings
|
||||
|
||||
register_settings(
|
||||
namespace=u'dynamic_search',
|
||||
module=u'dynamic_search.conf.settings',
|
||||
settings=[
|
||||
{'name': u'SHOW_OBJECT_TYPE', 'global_name': u'SEARCH_SHOW_OBJECT_TYPE', 'default': True, 'hidden': True},
|
||||
{'name': u'LIMIT', 'global_name': u'SEARCH_LIMIT', 'default': 100, 'description': _(u'Maximum amount search hits to fetch and display.')},
|
||||
]
|
||||
)
|
||||
|
||||
SHOW_OBJECT_TYPE = getattr(settings, 'SEARCH_SHOW_OBJECT_TYPE', True)
|
||||
LIMIT = getattr(settings, 'SEARCH_LIMIT', 100)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from django.shortcuts import render_to_response
|
||||
from django.template import RequestContext
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.contrib import messages
|
||||
from django.conf import settings
|
||||
|
||||
|
||||
@@ -1,11 +1,15 @@
|
||||
'''Configuration options for the filesystem_serving app
|
||||
'''
|
||||
"""Configuration options for the filesystem_serving app"""
|
||||
|
||||
from django.conf import settings
|
||||
from main.api import register_settings
|
||||
|
||||
register_settings(
|
||||
namespace=u'filesystem_serving',
|
||||
module=u'filesystem_serving.conf.settings',
|
||||
settings=[
|
||||
{'name': u'SLUGIFY_PATHS', 'global_name': u'FILESYSTEM_SLUGIFY_PATHS', 'default': False},
|
||||
{'name': u'MAX_RENAME_COUNT', 'global_name': u'FILESYSTEM_MAX_RENAME_COUNT', 'default': 200},
|
||||
{'name': u'FILESERVING_PATH', 'global_name': u'FILESYSTEM_FILESERVING_PATH', 'default': u'/tmp/mayan/documents', 'exists': True},
|
||||
{'name': u'FILESERVING_ENABLE', 'global_name': u'FILESYSTEM_FILESERVING_ENABLE', 'default': True}
|
||||
]
|
||||
)
|
||||
|
||||
# Serving
|
||||
FILESERVING_ENABLE = getattr(settings, 'FILESYSTEM_FILESERVING_ENABLE', True)
|
||||
FILESERVING_PATH = getattr(settings, 'FILESYSTEM_FILESERVING_PATH', u'/tmp/mayan/documents')
|
||||
SLUGIFY_PATHS = getattr(settings, 'FILESYSTEM_SLUGIFY_PATHS', False)
|
||||
MAX_RENAME_COUNT = getattr(settings, 'FILESYSTEM_MAX_RENAME_COUNT', 200)
|
||||
|
||||
@@ -5,6 +5,8 @@ from permissions import role_list
|
||||
from user_management import user_list
|
||||
|
||||
from main.conf.settings import SIDE_BAR_SEARCH
|
||||
from main.conf import settings as main_settings
|
||||
from main.api import register_setting
|
||||
|
||||
|
||||
def is_superuser(context):
|
||||
@@ -58,3 +60,6 @@ def get_version():
|
||||
return ''.join(vers)
|
||||
|
||||
__version__ = get_version()
|
||||
|
||||
|
||||
#register_setting(u'main', main_settings, u'SIDE_BAR_SEARCH', u'MAIN_SIDE_BAR_SEARCH')
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.utils.functional import lazy
|
||||
from django.conf import settings as django_settings
|
||||
from django.utils.importlib import import_module
|
||||
|
||||
diagnostics = {}
|
||||
tools = {}
|
||||
reverse_lazy = lazy(reverse, str)
|
||||
settings = {}
|
||||
|
||||
|
||||
def register_diagnostic(namespace, title, link):
|
||||
@@ -20,3 +23,47 @@ def register_tool(link, title=None, namespace=None):
|
||||
link['url'] = link.get('url', reverse_lazy(link['view']))
|
||||
namespace_dict['links'].append(link)
|
||||
tools[namespace] = namespace_dict
|
||||
|
||||
|
||||
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),
|
||||
)
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
'''Configuration options for the main app
|
||||
'''
|
||||
"""Configuration options for the main app"""
|
||||
|
||||
from django.conf import settings
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from main.api import register_setting
|
||||
|
||||
SIDE_BAR_SEARCH = getattr(settings, 'MAIN_SIDE_BAR_SEARCH', False)
|
||||
|
||||
setting_description = {
|
||||
'MAIN_SIDE_BAR_SEARCH': _(u'Controls whether the search\
|
||||
functionality is provided by a sidebar widget or by a menu entry.')
|
||||
}
|
||||
register_setting(
|
||||
namespace=u'main',
|
||||
module=u'main.conf.settings',
|
||||
name=u'SIDE_BAR_SEARCH',
|
||||
global_name=u'MAIN_SIDE_BAR_SEARCH',
|
||||
default=False,
|
||||
description=_(u'Controls whether the search functionality is provided by a sidebar widget or by a menu entry.')
|
||||
)
|
||||
|
||||
@@ -4,18 +4,18 @@ from django.utils.translation import ugettext_lazy as _
|
||||
from django.core.exceptions import PermissionDenied
|
||||
|
||||
from common.utils import exists_with_famfam, return_type
|
||||
from common.conf import settings as common_settings
|
||||
from documents.conf import settings as documents_settings
|
||||
from documents.statistics import get_statistics as documents_statistics
|
||||
from converter.conf import settings as converter_settings
|
||||
from ocr.conf import settings as ocr_settings
|
||||
from ocr.statistics import get_statistics as ocr_statistics
|
||||
from filesystem_serving.conf import settings as filesystem_serving_settings
|
||||
from dynamic_search.conf import settings as search_settings
|
||||
#from common.conf import settings as common_settings
|
||||
#from documents.conf import settings as documents_settings
|
||||
#from documents.statistics import get_statistics as documents_statistics
|
||||
#from converter.conf import settings as converter_settings
|
||||
#from ocr.conf import settings as ocr_settings
|
||||
#from ocr.statistics import get_statistics as ocr_statistics
|
||||
#from filesystem_serving.conf import settings as filesystem_serving_settings
|
||||
#from dynamic_search.conf import settings as search_settings
|
||||
from permissions.api import check_permissions
|
||||
|
||||
from main.conf import settings as main_settings
|
||||
from main.api import diagnostics, tools
|
||||
from main.api import diagnostics, tools, settings
|
||||
|
||||
|
||||
def home(request):
|
||||
@@ -24,10 +24,8 @@ def home(request):
|
||||
|
||||
|
||||
def check_settings(request):
|
||||
"""
|
||||
settings = [
|
||||
{'name': 'MAIN_SIDE_BAR_SEARCH',
|
||||
'value': main_settings.SIDE_BAR_SEARCH,
|
||||
'description': main_settings.setting_description},
|
||||
|
||||
{'name': 'DOCUMENTS_METADATA_AVAILABLE_FUNCTIONS', 'value': documents_settings.AVAILABLE_FUNCTIONS},
|
||||
{'name': 'DOCUMENTS_METADATA_AVAILABLE_MODELS', 'value': documents_settings.AVAILABLE_MODELS},
|
||||
@@ -106,17 +104,30 @@ def check_settings(request):
|
||||
# Search
|
||||
{'name': 'SEARCH_LIMIT', 'value': search_settings.LIMIT},
|
||||
]
|
||||
|
||||
"""
|
||||
new_settings = []
|
||||
for namespace, sub_settings in settings.items():
|
||||
for sub_setting in sub_settings:
|
||||
if not sub_setting.get('hidden', False):
|
||||
new_settings.append({
|
||||
'module': sub_setting['module'],
|
||||
'name': sub_setting['name'],
|
||||
'global_name': sub_setting['global_name'],
|
||||
'description': sub_setting.get('description', None),
|
||||
'exists': sub_setting.get('exists', False),
|
||||
'default': sub_setting['default'],
|
||||
})
|
||||
context = {
|
||||
'title': _(u'settings'),
|
||||
'object_list': settings,
|
||||
'object_list': new_settings,
|
||||
'hide_link': True,
|
||||
'hide_object': True,
|
||||
'extra_columns': [
|
||||
{'name': _(u'name'), 'attribute': 'name'},
|
||||
{'name': _(u'value'), 'attribute': lambda x: return_type(x['value'])},
|
||||
{'name': _(u'description'), 'attribute': lambda x: x.get('description', {}).get(x['name'], '')},
|
||||
{'name': _(u'exists'), 'attribute': lambda x: exists_with_famfam(x['value']) if 'exists' in x else ''},
|
||||
{'name': _(u'name'), 'attribute': 'global_name'},
|
||||
{'name': _(u'default'), 'attribute': lambda x: return_type(x['default'])},
|
||||
{'name': _(u'value'), 'attribute': lambda x: return_type(getattr(x['module'], x['name']))},
|
||||
{'name': _(u'description'), 'attribute': 'description'},
|
||||
{'name': _(u'exists'), 'attribute': lambda x: exists_with_famfam(getattr(x['module'], x['name'])) if x['exists'] else ''},
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
@@ -1,11 +1,21 @@
|
||||
from django.conf import settings
|
||||
"""Configuration options for the ocr app"""
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from main.api import register_settings
|
||||
|
||||
register_settings(
|
||||
namespace=u'ocr',
|
||||
module=u'ocr.conf.settings',
|
||||
settings=[
|
||||
{'name': u'TESSERACT_PATH', 'global_name': u'OCR_TESSERACT_PATH', 'default': u'/usr/bin/tesseract', 'exists': True},
|
||||
{'name': u'TESSERACT_LANGUAGE', 'global_name': u'OCR_TESSERACT_LANGUAGE', 'default': u'eng'},
|
||||
{'name': u'REPLICATION_DELAY', 'global_name': u'OCR_REPLICATION_DELAY', 'default': 10, 'description': _(u'Amount of seconds to delay OCR of documents to allow for the node\'s storage replication overhead.')},
|
||||
{'name': u'NODE_CONCURRENT_EXECUTION', 'global_name': u'OCR_NODE_CONCURRENT_EXECUTION', 'default': 1, 'description': _(u'Maximum amount of concurrent document OCRs a node can perform.')},
|
||||
{'name': u'AUTOMATIC_OCR', 'global_name': u'OCR_AUTOMATIC_OCR', 'default': False, 'description': _(u'Automatically queue newly created documents for OCR.')},
|
||||
{'name': u'PDFTOTEXT_PATH', 'global_name': u'OCR_PDFTOTEXT_PATH', 'default': u'/usr/bin/pdftotext', 'exists': True},
|
||||
{'name': u'QUEUE_PROCESSING_INTERVAL', 'global_name': u'OCR_QUEUE_PROCESSING_INTERVAL', 'default': 10},
|
||||
{'name': u'CACHE_URI', 'global_name': u'OCR_CACHE_URI', 'default': None, 'description': _(u'URI in the form: "memcached://127.0.0.1:11211/" to specify a cache backend to use for locking. Multiple hosts can be specified separated by a semicolon.')}
|
||||
]
|
||||
)
|
||||
|
||||
TESSERACT_PATH = getattr(settings, 'OCR_TESSERACT_PATH', u'/usr/bin/tesseract')
|
||||
TESSERACT_LANGUAGE = getattr(settings, 'OCR_TESSERACT_LANGUAGE', u'eng')
|
||||
REPLICATION_DELAY = getattr(settings, 'OCR_REPLICATION_DELAY', 10) # In seconds
|
||||
NODE_CONCURRENT_EXECUTION = getattr(settings, 'OCR_NODE_CONCURRENT_EXECUTION', 1)
|
||||
AUTOMATIC_OCR = getattr(settings, 'OCR_AUTOMATIC_OCR', False)
|
||||
PDFTOTEXT_PATH = getattr(settings, 'OCR_PDFTOTEXT_PATH', u'/usr/bin/pdftotext')
|
||||
QUEUE_PROCESSING_INTERVAL = getattr(settings, 'OCR_QUEUE_PROCESSING_INTERVAL', 10) # In seconds
|
||||
CACHE_URI = getattr(settings, 'OCR_CACHE_URI', None)
|
||||
|
||||
@@ -7,7 +7,7 @@ from django.template import RequestContext
|
||||
from django.contrib import messages
|
||||
from django.views.generic.list_detail import object_list
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.conf import settings
|
||||
|
||||
from celery.task.control import inspect
|
||||
|
||||
@@ -1,3 +1,12 @@
|
||||
from django.conf import settings
|
||||
"""Configuration options for the permissions app"""
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
DEFAULT_ROLES = getattr(settings, 'ROLES_DEFAULT_ROLES', [])
|
||||
from main.api import register_settings
|
||||
|
||||
register_settings(
|
||||
namespace=u'permissions',
|
||||
module=u'permissions.conf.settings',
|
||||
settings=[
|
||||
{'name': u'DEFAULT_ROLES', 'global_name': u'ROLES_DEFAULT_ROLES', 'default': [], 'description': _('A list of existing roles that are automatically assigned to newly created users')},
|
||||
]
|
||||
)
|
||||
|
||||
@@ -1,8 +1,15 @@
|
||||
from django.conf import settings
|
||||
"""Configuration options for the storage app"""
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from main.api import register_settings
|
||||
|
||||
GRIDFS_HOST = getattr(settings, 'STORAGE_GRIDFS_HOST', u'localhost')
|
||||
GRIDFS_PORT = getattr(settings, 'STORAGE_GRIDFS_PORT', 27017)
|
||||
GRIDFS_DATABASE_NAME = getattr(settings, 'STORAGE_GRIDFS_DATABASE_NAME', u'document_storage')
|
||||
|
||||
FILESTORAGE_LOCATION = getattr(settings, 'STORAGE_FILESTORAGE_LOCATION', u'document_storage')
|
||||
register_settings(
|
||||
namespace=u'storage',
|
||||
module=u'storage.conf.settings',
|
||||
settings=[
|
||||
{'name': u'GRIDFS_HOST', 'global_name': u'STORAGE_GRIDFS_HOST', 'default': u'localhost'},
|
||||
{'name': u'GRIDFS_PORT', 'global_name': u'STORAGE_GRIDFS_PORT', 'default': 27017},
|
||||
{'name': u'GRIDFS_DATABASE_NAME', 'global_name': u'STORAGE_GRIDFS_DATABASE_NAME', 'default': u'document_storage'},
|
||||
{'name': u'FILESTORAGE_LOCATION', 'global_name': u'STORAGE_FILESTORAGE_LOCATION', 'default': u'document_storage', 'exists': True},
|
||||
]
|
||||
)
|
||||
|
||||
@@ -1,8 +1,13 @@
|
||||
from django.conf import settings
|
||||
"""Configuration options for the web_theme app"""
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
#Theme options are:
|
||||
#amro, bec, bec-green, blue, default, djime-cerulean, drastic-dark,
|
||||
#kathleene, olive, orange, red, reidb-greenish, warehouse
|
||||
from main.api import register_settings
|
||||
|
||||
THEME = getattr(settings, 'WEB_THEME', 'default')
|
||||
ENABLE_SCROLL_JS = getattr(settings, 'WEB_THEME_ENABLE_SCROLL_JS', True)
|
||||
register_settings(
|
||||
namespace=u'web_theme',
|
||||
module=u'web_theme.conf.settings',
|
||||
settings=[
|
||||
{'name': u'THEME', 'global_name': u'WEB_THEME_THEME', 'default': u'default', 'description': _(u'CSS theme to apply, options are: amro, bec, bec-green, blue, default, djime-cerulean, drastic-dark, kathleene, olive, orange, red, reidb-greenish and warehouse.')},
|
||||
{'name': u'ENABLE_SCROLL_JS', 'global_name': u'WEB_THEME_ENABLE_SCROLL_JS', 'default': True, 'hidden': True},
|
||||
]
|
||||
)
|
||||
|
||||
@@ -197,6 +197,7 @@ TEMPLATE_CONTEXT_PROCESSORS = (
|
||||
|
||||
# Usage
|
||||
#DOCUMENTS_PREVIEW_SIZE = '640x480'
|
||||
#DOCUMENTS_PRINT_SIZE = '640x480'
|
||||
#DOCUMENTS_THUMBNAIL_SIZE = '50x50'
|
||||
#DOCUMENTS_DISPLAY_SIZE = '1200'
|
||||
#DOCUMENTS_MULTIPAGE_PREVIEW_SIZE = '160x120'
|
||||
|
||||
Reference in New Issue
Block a user