Convert all apps to use the new class based settings
This commit is contained in:
@@ -2,74 +2,69 @@
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from smart_settings.api import register_setting
|
||||
from smart_settings.api import Setting, SettingNamespace
|
||||
|
||||
from common.literals import PAGE_SIZE_LETTER, PAGE_ORIENTATION_PORTRAIT
|
||||
|
||||
TEMPORARY_DIRECTORY = register_setting(
|
||||
namespace=u'common',
|
||||
module=u'common.conf.settings',
|
||||
name=u'TEMPORARY_DIRECTORY',
|
||||
global_name=u'COMMON_TEMPORARY_DIRECTORY',
|
||||
namespace = SettingNamespace('common', _(u'Common'), module=u'common.conf.settings')
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='TEMPORARY_DIRECTORY',
|
||||
global_name='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()'),
|
||||
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
|
||||
)
|
||||
|
||||
DEFAULT_PAPER_SIZE = register_setting(
|
||||
namespace=u'common',
|
||||
module=u'common.conf.settings',
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name=u'DEFAULT_PAPER_SIZE',
|
||||
global_name=u'COMMON_DEFAULT_PAPER_SIZE',
|
||||
default=PAGE_SIZE_LETTER,
|
||||
)
|
||||
|
||||
DEFAULT_PAGE_ORIENTATION = register_setting(
|
||||
namespace=u'common',
|
||||
module=u'common.conf.settings',
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name=u'DEFAULT_PAGE_ORIENTATION',
|
||||
global_name=u'COMMON_DEFAULT_PAGE_ORIENTATION',
|
||||
default=PAGE_ORIENTATION_PORTRAIT,
|
||||
)
|
||||
|
||||
register_setting(
|
||||
namespace=u'common',
|
||||
module=u'common.conf.settings',
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name=u'AUTO_CREATE_ADMIN',
|
||||
global_name=u'COMMON_AUTO_CREATE_ADMIN',
|
||||
default=True,
|
||||
)
|
||||
|
||||
register_setting(
|
||||
namespace=u'common',
|
||||
module=u'common.conf.settings',
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name=u'AUTO_ADMIN_USERNAME',
|
||||
global_name=u'COMMON_AUTO_ADMIN_USERNAME',
|
||||
default=u'admin',
|
||||
)
|
||||
|
||||
register_setting(
|
||||
namespace=u'common',
|
||||
module=u'common.conf.settings',
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name=u'AUTO_ADMIN_PASSWORD',
|
||||
global_name=u'COMMON_AUTO_ADMIN_PASSWORD',
|
||||
default=u'admin',
|
||||
)
|
||||
|
||||
register_setting(
|
||||
namespace=u'common',
|
||||
module=u'common.conf.settings',
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name=u'LOGIN_METHOD',
|
||||
global_name=u'COMMON_LOGIN_METHOD',
|
||||
default=u'username',
|
||||
description=_(u'Controls the mechanism used to authenticated user. Options are: username, email'),
|
||||
)
|
||||
|
||||
register_setting(
|
||||
namespace=u'common',
|
||||
module=u'common.conf.settings',
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name=u'ALLOW_ANONYMOUS_ACCESS',
|
||||
global_name=u'COMMON_ALLOW_ANONYMOUS_ACCESS',
|
||||
default=False,
|
||||
description=_(u'Allow non authenticated users, access to all views'),
|
||||
)
|
||||
|
||||
|
||||
@@ -1,23 +1,80 @@
|
||||
'''Configuration options for the converter app'''
|
||||
"""Configuration options for the converter app"""
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from smart_settings.api import register_settings
|
||||
from smart_settings.api import Setting, SettingNamespace
|
||||
|
||||
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'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.python', 'description': _(u'Graphics conversion backend to use. Options are: converter.backends.imagemagick, converter.backends.graphicsmagick and converter.backends.python.')},
|
||||
{'name': u'UNOCONV_PATH', 'global_name': u'CONVERTER_UNOCONV_PATH', 'default': u'/usr/bin/unoconv', 'exists': True, 'description': _(u'Path to the unoconv program.')},
|
||||
{'name': u'UNOCONV_USE_PIPE', 'global_name': u'CONVERTER_UNOCONV_USE_PIPE', 'default': True, 'description': _(u'Use alternate method of connection to LibreOffice using a pipe, it is slower but less prone to segmentation faults.')},
|
||||
|
||||
#{'name': u'OCR_OPTIONS', 'global_name': u'CONVERTER_OCR_OPTIONS', 'default': u'-colorspace Gray -depth 8 -resample 200x200'},
|
||||
#{'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_PRINT_QUALITY_OPTIONS', 'default': u'-density 500'},
|
||||
]
|
||||
namespace = SettingNamespace('converter', _(u'Converter'), module='converter.conf.settings')
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='IM_CONVERT_PATH',
|
||||
global_name='CONVERTER_IM_CONVERT_PATH',
|
||||
default=u'/usr/bin/convert',
|
||||
description=_(u'File path to imagemagick\'s convert program.'),
|
||||
exists=True,
|
||||
)
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='IM_CONVERT_PATH',
|
||||
global_name='CONVERTER_IM_CONVERT_PATH',
|
||||
default=u'/usr/bin/convert',
|
||||
description=_(u'File path to imagemagick\'s convert program.'),
|
||||
exists=True,
|
||||
)
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='IM_IDENTIFY_PATH',
|
||||
global_name='CONVERTER_IM_IDENTIFY_PATH',
|
||||
default=u'/usr/bin/identify',
|
||||
description=_(u'File path to imagemagick\'s identify program.'),
|
||||
exists=True,
|
||||
)
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='GM_PATH',
|
||||
global_name='CONVERTER_GM_PATH',
|
||||
default=u'/usr/bin/gm',
|
||||
description=_(u'File path to graphicsmagick\'s program.'),
|
||||
exists=True,
|
||||
)
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='GM_SETTINGS',
|
||||
global_name='CONVERTER_GM_SETTINGS',
|
||||
default=u'',
|
||||
description=_(u'Set of configuration options to pass to the GraphicsMagick executable to fine tune it\'s functionality as explained in the GraphicsMagick documentation.'),
|
||||
)
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='GRAPHICS_BACKEND',
|
||||
global_name='CONVERTER_GRAPHICS_BACKEND',
|
||||
default=u'converter.backends.python',
|
||||
description=_(u'Graphics conversion backend to use. Options are: converter.backends.imagemagick, converter.backends.graphicsmagick and converter.backends.python.'),
|
||||
)
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='UNOCONV_PATH',
|
||||
global_name='CONVERTER_UNOCONV_PATH',
|
||||
default=u'/usr/bin/unoconv',
|
||||
description=_(u'Path to the unoconv program.'),
|
||||
exists=True
|
||||
)
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='UNOCONV_USE_PIPE',
|
||||
global_name='CONVERTER_UNOCONV_USE_PIPE',
|
||||
default=True,
|
||||
description=_(u'Use alternate method of connection to LibreOffice using a pipe, it is slower but less prone to segmentation faults.'),
|
||||
)
|
||||
|
||||
#{'name': u'OCR_OPTIONS', 'global_name': u'CONVERTER_OCR_OPTIONS', 'default': u'-colorspace Gray -depth 8 -resample 200x200'},
|
||||
#{'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_PRINT_QUALITY_OPTIONS', 'default': u'-density 500'},
|
||||
|
||||
@@ -6,13 +6,23 @@ import os
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.conf import settings
|
||||
|
||||
from smart_settings.api import register_settings
|
||||
from smart_settings.api import Setting, SettingNamespace
|
||||
|
||||
register_settings(
|
||||
namespace=u'django_gpg',
|
||||
module=u'django_gpg.conf.settings',
|
||||
settings=[
|
||||
{'name': u'KEYSERVERS', 'global_name': u'SIGNATURES_KEYSERVERS', 'default': ['pool.sks-keyservers.net'], 'description': _(u'List of keyservers to be queried for unknown keys.')},
|
||||
{'name': u'GPG_HOME', 'global_name': u'SIGNATURES_GPG_HOME', 'default': os.path.join(settings.PROJECT_ROOT, u'gpg_home'), 'description': _(u'Home directory used to store keys as well as configuration files.')},
|
||||
]
|
||||
namespace = SettingNamespace('django_gpg', _(u'Signatures'), module='django_gpg.conf.settings')
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='KEYSERVERS',
|
||||
global_name='SIGNATURES_KEYSERVERS',
|
||||
default=['pool.sks-keyservers.net'],
|
||||
description=_(u'List of keyservers to be queried for unknown keys.'),
|
||||
)
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='GPG_HOME',
|
||||
global_name='SIGNATURES_GPG_HOME',
|
||||
default=os.path.join(settings.PROJECT_ROOT, u'gpg_home'),
|
||||
description=_(u'Home directory used to store keys as well as configuration files.'),
|
||||
exists=True,
|
||||
)
|
||||
|
||||
@@ -3,22 +3,50 @@
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from common.utils import proper_name
|
||||
from smart_settings.api import register_settings
|
||||
from smart_settings.api import Setting, SettingNamespace
|
||||
|
||||
available_indexing_functions = {
|
||||
'proper_name': proper_name
|
||||
}
|
||||
|
||||
register_settings(
|
||||
namespace=u'document_indexing',
|
||||
module=u'document_indexing.conf.settings',
|
||||
settings=[
|
||||
# Definition
|
||||
{'name': u'AVAILABLE_INDEXING_FUNCTIONS', 'global_name': u'DOCUMENT_INDEXING_AVAILABLE_INDEXING_FUNCTIONS', 'default': available_indexing_functions},
|
||||
{'name': u'SUFFIX_SEPARATOR', 'global_name': u'DOCUMENT_INDEXING_SUFFIX_SEPARATOR', 'default': u'_'},
|
||||
# Filesystem serving
|
||||
{'name': u'SLUGIFY_PATHS', 'global_name': u'DOCUMENT_INDEXING_FILESYSTEM_SLUGIFY_PATHS', 'default': False},
|
||||
{'name': u'MAX_SUFFIX_COUNT', 'global_name': u'DOCUMENT_INDEXING_FILESYSTEM_MAX_SUFFIX_COUNT', 'default': 1000},
|
||||
{'name': u'FILESYSTEM_SERVING', 'global_name': u'DOCUMENT_INDEXING_FILESYSTEM_SERVING', 'default': {}, 'description': _(u'A dictionary that maps the index name and where on the filesystem that index will be mirrored.')}
|
||||
]
|
||||
namespace = SettingNamespace('document_indexing', _(u'Indexing'), module='document_indexing.conf.settings')
|
||||
|
||||
# Definition
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='AVAILABLE_INDEXING_FUNCTIONS',
|
||||
global_name='DOCUMENT_INDEXING_AVAILABLE_INDEXING_FUNCTIONS',
|
||||
default=available_indexing_functions,
|
||||
)
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='SUFFIX_SEPARATOR',
|
||||
global_name='DOCUMENT_INDEXING_SUFFIX_SEPARATOR',
|
||||
default=u'_',
|
||||
)
|
||||
|
||||
# Filesystem serving
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='SLUGIFY_PATHS',
|
||||
global_name='DOCUMENT_INDEXING_FILESYSTEM_SLUGIFY_PATHS',
|
||||
default=False,
|
||||
)
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='MAX_SUFFIX_COUNT',
|
||||
global_name='DOCUMENT_INDEXING_FILESYSTEM_MAX_SUFFIX_COUNT',
|
||||
default=1000,
|
||||
)
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='FILESYSTEM_SERVING',
|
||||
global_name='DOCUMENT_INDEXING_FILESYSTEM_SERVING',
|
||||
default={},
|
||||
description=_(u'A dictionary that maps the index name and where on the filesystem that index will be mirrored.'),
|
||||
)
|
||||
|
||||
@@ -8,8 +8,7 @@ from django.utils.translation import ugettext_lazy as _
|
||||
from django.conf import settings
|
||||
|
||||
from storage.backends.filebasedstorage import FileBasedStorage
|
||||
from smart_settings.api import register_settings
|
||||
|
||||
from smart_settings.api import Setting, SettingNamespace
|
||||
|
||||
def default_checksum(x):
|
||||
"""hashlib.sha256(x).hexdigest()"""
|
||||
@@ -20,27 +19,115 @@ def default_uuid():
|
||||
"""unicode(uuid.uuid4())"""
|
||||
return unicode(uuid.uuid4())
|
||||
|
||||
register_settings(
|
||||
namespace=u'documents',
|
||||
module=u'documents.conf.settings',
|
||||
settings=[
|
||||
# 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},
|
||||
# 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.')},
|
||||
#
|
||||
{'name': u'CACHE_PATH', 'global_name': u'DOCUMENTS_CACHE_PATH', 'default': os.path.join(settings.PROJECT_ROOT, 'image_cache'), 'exists': True},
|
||||
]
|
||||
|
||||
namespace = SettingNamespace('documents', _(u'Documents'), module='documents.conf.settings')
|
||||
|
||||
# Saving
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='CHECKSUM_FUNCTION',
|
||||
global_name='DOCUMENTS_CHECKSUM_FUNCTION',
|
||||
default=default_checksum,
|
||||
)
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='UUID_FUNCTION',
|
||||
global_name='DOCUMENTS_UUID_FUNCTION',
|
||||
default=default_uuid,
|
||||
)
|
||||
|
||||
# Storage
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='STORAGE_BACKEND',
|
||||
global_name='DOCUMENTS_STORAGE_BACKEND',
|
||||
default=FileBasedStorage,
|
||||
)
|
||||
|
||||
# Usage
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='PREVIEW_SIZE',
|
||||
global_name='DOCUMENTS_PREVIEW_SIZE',
|
||||
default=u'640x480',
|
||||
)
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='PRINT_SIZE',
|
||||
global_name='DOCUMENTS_PRINT_SIZE',
|
||||
default=u'1400',
|
||||
)
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='MULTIPAGE_PREVIEW_SIZE',
|
||||
global_name='DOCUMENTS_MULTIPAGE_PREVIEW_SIZE',
|
||||
default=u'160x120',
|
||||
)
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='THUMBNAIL_SIZE',
|
||||
global_name='DOCUMENTS_THUMBNAIL_SIZE',
|
||||
default=u'50x50',
|
||||
)
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='DISPLAY_SIZE',
|
||||
global_name='DOCUMENTS_DISPLAY_SIZE',
|
||||
default=u'1200',
|
||||
)
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='RECENT_COUNT',
|
||||
global_name='DOCUMENTS_RECENT_COUNT',
|
||||
default=40,
|
||||
description=_(u'Maximum number of recent (created, edited, viewed) documents to remember per user.'),
|
||||
)
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='ZOOM_PERCENT_STEP',
|
||||
global_name='DOCUMENTS_ZOOM_PERCENT_STEP',
|
||||
default=50,
|
||||
description=_(u'Amount in percent zoom in or out a document page per user interaction.'),
|
||||
)
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='ZOOM_MAX_LEVEL',
|
||||
global_name='DOCUMENTS_ZOOM_MAX_LEVEL',
|
||||
default=200,
|
||||
description=_(u'Maximum amount in percent (%) to allow user to zoom in a document page interactively.'),
|
||||
)
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='ZOOM_MIN_LEVEL',
|
||||
global_name='DOCUMENTS_ZOOM_MIN_LEVEL',
|
||||
default=50,
|
||||
description=_(u'Minimum amount in percent (%) to allow user to zoom out a document page interactively.'),
|
||||
)
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='ROTATION_STEP',
|
||||
global_name='DOCUMENTS_ROTATION_STEP',
|
||||
default=90,
|
||||
description=_(u'Amount in degrees to rotate a document page per user interaction.'),
|
||||
)
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='CACHE_PATH',
|
||||
global_name='DOCUMENTS_CACHE_PATH',
|
||||
default=os.path.join(settings.PROJECT_ROOT, 'image_cache'),
|
||||
exists=True
|
||||
)
|
||||
|
||||
@@ -2,14 +2,30 @@
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from smart_settings.api import register_settings
|
||||
from smart_settings.api import Setting, SettingNamespace
|
||||
|
||||
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.')},
|
||||
{'name': u'RECENT_COUNT', 'global_name': u'SEARCH_RECENT_COUNT', 'default': 5, 'description': _(u'Maximum number of search queries to remember per user.')},
|
||||
]
|
||||
namespace = SettingNamespace('dynamic_search', _(u'Searching'), module='dynamic_search.conf.settings')
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='SHOW_OBJECT_TYPE',
|
||||
global_name='SEARCH_SHOW_OBJECT_TYPE',
|
||||
default=True,
|
||||
hidden=True
|
||||
)
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='LIMIT',
|
||||
global_name='SEARCH_LIMIT',
|
||||
default=100,
|
||||
description=_(u'Maximum amount search hits to fetch and display.')
|
||||
)
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='RECENT_COUNT',
|
||||
global_name='SEARCH_RECENT_COUNT',
|
||||
default=5,
|
||||
description=_(u'Maximum number of search queries to remember per user.')
|
||||
)
|
||||
|
||||
@@ -1,13 +1,15 @@
|
||||
'''Configuration options for the linking app'''
|
||||
"""Configuration options for the linking app"""
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from smart_settings.api import register_settings
|
||||
from smart_settings.api import Setting, SettingNamespace
|
||||
|
||||
register_settings(
|
||||
namespace=u'linking',
|
||||
module=u'linking.conf.settings',
|
||||
settings=[
|
||||
{'name': u'SHOW_EMPTY_SMART_LINKS', 'global_name': u'LINKING_SHOW_EMPTY_SMART_LINKS', 'default': True, 'description': _(u'Show smart link that don\'t return any documents.')},
|
||||
]
|
||||
namespace = SettingNamespace('linking', _(u'Linking'), module='linking.conf.settings')
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='SHOW_EMPTY_SMART_LINKS',
|
||||
global_name='LINKING_SHOW_EMPTY_SMART_LINKS',
|
||||
default=True,
|
||||
description=_(u'Show smart link that don\'t return any documents.')
|
||||
)
|
||||
|
||||
@@ -17,19 +17,3 @@ class_permissions(Document, [
|
||||
PERMISSION_MAILING_LINK,
|
||||
PERMISSION_MAILING_SEND_DOCUMENT
|
||||
])
|
||||
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from smart_settings.api import register_settings, Setting, SettingNamespace
|
||||
|
||||
mailer_namespace = SettingNamespace('mailer', _(u'Mailer'))
|
||||
|
||||
Setting(
|
||||
namespace=mailer_namespace,
|
||||
module='mailer.conf.settings',
|
||||
name='LINK_SUBJECT_TEMPLATE',
|
||||
global_name='MAILER_LINK_SUBJECT_TEMPLATE',
|
||||
default='Link for document: {{ document }}',
|
||||
description=_(u'Template for the document link email form subject line.')
|
||||
)
|
||||
|
||||
@@ -2,31 +2,38 @@
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from smart_settings.api import register_settings, Setting, SettingNamespace
|
||||
from smart_settings.api import Setting, SettingNamespace
|
||||
|
||||
register_settings(
|
||||
namespace=u'mailer',
|
||||
module=u'mailer.conf.settings',
|
||||
settings=[
|
||||
# Links
|
||||
#{'name': u'LINK_SUBJECT_TEMPLATE', 'global_name': u'MAILER_LINK_SUBJECT_TEMPLATE', 'default': 'Link for document: {{ document }}', 'description': _(u'Template for the document link email form subject line.')},
|
||||
{'name': u'LINK_BODY_TEMPLATE', 'global_name': u'MAILER_LINK_BODY_TEMPLATE', 'default': 'To access this document click on the following link: <a href="{{ link }}">{{ link }}</a><br /><br />\n\n--------<br />\nThis email has been sent from Mayan EDMS (http://www.mayan-edms.com)', 'description': _(u'Template for the document link email form body line.')},
|
||||
# Attachment
|
||||
{'name': u'DOCUMENT_SUBJECT_TEMPLATE', 'global_name': u'MAILER_DOCUMENT_SUBJECT_TEMPLATE', 'default': 'Document: {{ document }}', 'description': _(u'Template for the document email form subject line.')},
|
||||
{'name': u'DOCUMENT_BODY_TEMPLATE', 'global_name': u'MAILER_DOCUMENT_BODY_TEMPLATE', 'default': 'Attached to this email is the document: {{ document }}<br /><br />\n\n--------<br />\nThis email has been sent from Mayan EDMS (http://www.mayan-edms.com)', 'description': _(u'Template for the document email form body line.')},
|
||||
]
|
||||
)
|
||||
|
||||
"""
|
||||
mailer_namespace = SettingNamespace('mailer', _(u'Mailer'))
|
||||
mailer_namespace = SettingNamespace('mailer', _(u'Mailer'), module='mailer.conf.settings')
|
||||
|
||||
Setting(
|
||||
namespace=mailer_namespace,
|
||||
module='mailer.conf.settings',
|
||||
name='LINK_SUBJECT_TEMPLATE',
|
||||
global_name='MAILER_LINK_SUBJECT_TEMPLATE',
|
||||
default='Link for document: {{ document }}',
|
||||
default=_(u'Link for document: {{ document }}'),
|
||||
description=_(u'Template for the document link email form subject line.')
|
||||
)
|
||||
|
||||
"""
|
||||
Setting(
|
||||
namespace=mailer_namespace,
|
||||
name='LINK_BODY_TEMPLATE',
|
||||
global_name='MAILER_LINK_BODY_TEMPLATE',
|
||||
default=_(u'To access this document click on the following link: <a href="{{ link }}">{{ link }}</a><br /><br />\n\n--------<br />\nThis email has been sent from Mayan EDMS (http://www.mayan-edms.com)'),
|
||||
description=_(u'Template for the document link email form body line.')
|
||||
)
|
||||
|
||||
Setting(
|
||||
namespace=mailer_namespace,
|
||||
name='DOCUMENT_SUBJECT_TEMPLATE',
|
||||
global_name='MAILER_DOCUMENT_SUBJECT_TEMPLATE',
|
||||
default=_(u'Document: {{ document }}'),
|
||||
description=_(u'Template for the document email form subject line.')
|
||||
)
|
||||
|
||||
Setting(
|
||||
namespace=mailer_namespace,
|
||||
name='DOCUMENT_BODY_TEMPLATE',
|
||||
global_name='MAILER_DOCUMENT_BODY_TEMPLATE',
|
||||
default=_(u'Attached to this email is the document: {{ document }}<br /><br />\n\n--------<br />\nThis email has been sent from Mayan EDMS (http://www.mayan-edms.com)'),
|
||||
description=_(u'Template for the document email form body line.')
|
||||
)
|
||||
|
||||
@@ -1,28 +1,27 @@
|
||||
"""Configuration options for the main app"""
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from smart_settings.api import register_setting
|
||||
from smart_settings.api import Setting, SettingNamespace
|
||||
|
||||
register_setting(
|
||||
namespace=u'main',
|
||||
module=u'main.conf.settings',
|
||||
namespace = SettingNamespace('main', _(u'Main'), module='main.conf.settings')
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
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.')
|
||||
)
|
||||
|
||||
register_setting(
|
||||
namespace=u'main',
|
||||
module=u'main.conf.settings',
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name=u'DISABLE_HOME_VIEW',
|
||||
global_name=u'MAIN_DISABLE_HOME_VIEW',
|
||||
default=False,
|
||||
)
|
||||
|
||||
register_setting(
|
||||
namespace=u'main',
|
||||
module=u'main.conf.settings',
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name=u'DISABLE_ICONS',
|
||||
global_name=u'MAIN_DISABLE_ICONS',
|
||||
default=False,
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
import datetime
|
||||
|
||||
from django.contrib.auth.models import User
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from smart_settings.api import register_settings
|
||||
|
||||
from smart_settings.api import Setting, SettingNamespace
|
||||
|
||||
default_available_functions = {
|
||||
'current_date': datetime.datetime.now().date,
|
||||
@@ -15,12 +15,18 @@ default_available_models = {
|
||||
'User': User
|
||||
}
|
||||
|
||||
register_settings(
|
||||
namespace=u'metadata',
|
||||
module=u'metadata.conf.settings',
|
||||
settings=[
|
||||
# Definition
|
||||
{'name': u'AVAILABLE_FUNCTIONS', 'global_name': u'METADATA_AVAILABLE_FUNCTIONS', 'default': default_available_functions},
|
||||
{'name': u'AVAILABLE_MODELS', 'global_name': u'METADATA_AVAILABLE_MODELS', 'default': default_available_models},
|
||||
]
|
||||
namespace = SettingNamespace('metadata', _(u'Metadata'), module='metadata.conf.settings')
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name=u'AVAILABLE_FUNCTIONS',
|
||||
global_name=u'METADATA_AVAILABLE_FUNCTIONS',
|
||||
default=default_available_functions,
|
||||
)
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name=u'AVAILABLE_MODELS',
|
||||
global_name=u'METADATA_AVAILABLE_MODELS',
|
||||
default=default_available_models,
|
||||
)
|
||||
|
||||
@@ -2,18 +2,62 @@
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from smart_settings.api import register_settings
|
||||
from smart_settings.api import Setting, SettingNamespace
|
||||
|
||||
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': 0, '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'QUEUE_PROCESSING_INTERVAL', 'global_name': u'OCR_QUEUE_PROCESSING_INTERVAL', 'default': 10},
|
||||
{'name': u'UNPAPER_PATH', 'global_name': u'OCR_UNPAPER_PATH', 'default': u'/usr/bin/unpaper', 'description': _(u'File path to unpaper program.'), 'exists': True},
|
||||
]
|
||||
namespace = SettingNamespace('ocr', _(u'OCR'), module='ocr.conf.settings')
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='TESSERACT_PATH',
|
||||
global_name='OCR_TESSERACT_PATH',
|
||||
default=u'/usr/bin/tesseract',
|
||||
exists=True,
|
||||
)
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='TESSERACT_LANGUAGE',
|
||||
global_name='OCR_TESSERACT_LANGUAGE',
|
||||
default=u'eng',
|
||||
)
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='REPLICATION_DELAY',
|
||||
global_name='OCR_REPLICATION_DELAY',
|
||||
default=0,
|
||||
description=_(u'Amount of seconds to delay OCR of documents to allow for the node\'s storage replication overhead.'),
|
||||
)
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='NODE_CONCURRENT_EXECUTION',
|
||||
global_name='OCR_NODE_CONCURRENT_EXECUTION',
|
||||
default=1,
|
||||
description=_(u'Maximum amount of concurrent document OCRs a node can perform.')
|
||||
)
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='AUTOMATIC_OCR',
|
||||
global_name='OCR_AUTOMATIC_OCR',
|
||||
default=False,
|
||||
description=_(u'Automatically queue newly created documents for OCR.')
|
||||
)
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='QUEUE_PROCESSING_INTERVAL',
|
||||
global_name='OCR_QUEUE_PROCESSING_INTERVAL',
|
||||
default=10,
|
||||
description=_(u'Automatically queue newly created documents for OCR.')
|
||||
)
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='UNPAPER_PATH',
|
||||
global_name='OCR_UNPAPER_PATH',
|
||||
default=u'/usr/bin/unpaper',
|
||||
description=_(u'File path to unpaper program.'),
|
||||
exists=True
|
||||
)
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
"""Configuration options for the permissions app"""
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from smart_settings.api import register_settings
|
||||
from smart_settings.api import Setting, SettingNamespace
|
||||
|
||||
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')},
|
||||
]
|
||||
namespace = SettingNamespace('permissions', _(u'Permissions'), module='permissions.conf.settings')
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='DEFAULT_ROLES',
|
||||
global_name='ROLES_DEFAULT_ROLES',
|
||||
default=[],
|
||||
description=_(u'A list of existing roles that are automatically assigned to newly created users')
|
||||
)
|
||||
|
||||
@@ -4,15 +4,35 @@ import os
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.conf import settings
|
||||
|
||||
from smart_settings.api import register_settings
|
||||
from smart_settings.api import Setting, SettingNamespace
|
||||
|
||||
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': os.path.join(settings.PROJECT_ROOT, u'document_storage'), 'exists': True},
|
||||
]
|
||||
namespace = SettingNamespace('storage', _(u'Storage'), module='storage.conf.settings')
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='GRIDFS_HOST',
|
||||
global_name='STORAGE_GRIDFS_HOST',
|
||||
default=u'localhost',
|
||||
)
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='GRIDFS_PORT',
|
||||
global_name='STORAGE_GRIDFS_PORT',
|
||||
default=27017,
|
||||
)
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='GRIDFS_DATABASE_NAME',
|
||||
global_name='STORAGE_GRIDFS_DATABASE_NAME',
|
||||
default='document_storage',
|
||||
)
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='FILESTORAGE_LOCATION',
|
||||
global_name='STORAGE_FILESTORAGE_LOCATION',
|
||||
default=os.path.join(settings.PROJECT_ROOT, u'document_storage'),
|
||||
exists=True
|
||||
)
|
||||
|
||||
@@ -1,14 +1,30 @@
|
||||
"""Configuration options for the web_theme app"""
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from smart_settings.api import register_settings
|
||||
from smart_settings.api import Setting, SettingNamespace
|
||||
|
||||
register_settings(
|
||||
namespace=u'web_theme',
|
||||
module=u'web_theme.conf.settings',
|
||||
settings=[
|
||||
{'name': u'THEME', 'global_name': u'WEB_THEME_THEME', 'default': u'activo', '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},
|
||||
{'name': u'VERBOSE_LOGIN', 'global_name': u'WEB_THEME_VERBOSE_LOGIN', 'default': True, 'description': _(u'Display extra information in the login screen.')},
|
||||
]
|
||||
namespace = SettingNamespace('web_theme', _(u'Interface'), module='web_theme.conf.settings')
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='THEME',
|
||||
global_name='WEB_THEME_THEME',
|
||||
default=u'activo',
|
||||
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.')
|
||||
)
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='ENABLE_SCROLL_JS',
|
||||
global_name='WEB_THEME_ENABLE_SCROLL_JS',
|
||||
default=True,
|
||||
hidden=True
|
||||
)
|
||||
|
||||
Setting(
|
||||
namespace=namespace,
|
||||
name='VERBOSE_LOGIN',
|
||||
global_name='WEB_THEME_VERBOSE_LOGIN',
|
||||
default=True,
|
||||
description=_(u'Display extra information in the login screen.')
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user