diff --git a/apps/common/conf/settings.py b/apps/common/conf/settings.py index e1ec67ada3..ebe0f44630 100644 --- a/apps/common/conf/settings.py +++ b/apps/common/conf/settings.py @@ -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'), ) + diff --git a/apps/converter/conf/settings.py b/apps/converter/conf/settings.py index 1dbfe4d6bc..3d4b1e27f4 100644 --- a/apps/converter/conf/settings.py +++ b/apps/converter/conf/settings.py @@ -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'}, diff --git a/apps/django_gpg/conf/settings.py b/apps/django_gpg/conf/settings.py index e1eed62938..db063c9426 100644 --- a/apps/django_gpg/conf/settings.py +++ b/apps/django_gpg/conf/settings.py @@ -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, ) diff --git a/apps/document_indexing/conf/settings.py b/apps/document_indexing/conf/settings.py index beb66ca3dd..7e49b7ce1f 100644 --- a/apps/document_indexing/conf/settings.py +++ b/apps/document_indexing/conf/settings.py @@ -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.'), ) diff --git a/apps/documents/conf/settings.py b/apps/documents/conf/settings.py index 5da5542b94..86df5ab6b6 100644 --- a/apps/documents/conf/settings.py +++ b/apps/documents/conf/settings.py @@ -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 ) diff --git a/apps/dynamic_search/conf/settings.py b/apps/dynamic_search/conf/settings.py index cc57a5cb1e..78ff433087 100644 --- a/apps/dynamic_search/conf/settings.py +++ b/apps/dynamic_search/conf/settings.py @@ -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.') ) diff --git a/apps/linking/conf/settings.py b/apps/linking/conf/settings.py index cf0d855350..7c8f98fc8b 100644 --- a/apps/linking/conf/settings.py +++ b/apps/linking/conf/settings.py @@ -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.') ) diff --git a/apps/mailer/__init__.py b/apps/mailer/__init__.py index 036b559dc6..5d6e967d51 100644 --- a/apps/mailer/__init__.py +++ b/apps/mailer/__init__.py @@ -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.') -) diff --git a/apps/mailer/conf/settings.py b/apps/mailer/conf/settings.py index d9662324c0..ced2a33daf 100644 --- a/apps/mailer/conf/settings.py +++ b/apps/mailer/conf/settings.py @@ -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: {{ link }}

\n\n--------
\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 }}

\n\n--------
\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: {{ link }}

\n\n--------
\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 }}

\n\n--------
\nThis email has been sent from Mayan EDMS (http://www.mayan-edms.com)'), + description=_(u'Template for the document email form body line.') +) diff --git a/apps/main/conf/settings.py b/apps/main/conf/settings.py index 7a82555ea0..0fb71dbc58 100644 --- a/apps/main/conf/settings.py +++ b/apps/main/conf/settings.py @@ -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, diff --git a/apps/metadata/conf/settings.py b/apps/metadata/conf/settings.py index 359e079ed5..c3fda0bf84 100644 --- a/apps/metadata/conf/settings.py +++ b/apps/metadata/conf/settings.py @@ -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, ) diff --git a/apps/ocr/conf/settings.py b/apps/ocr/conf/settings.py index 31e2c908b8..67fad8653e 100644 --- a/apps/ocr/conf/settings.py +++ b/apps/ocr/conf/settings.py @@ -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 ) diff --git a/apps/permissions/conf/settings.py b/apps/permissions/conf/settings.py index 6132219834..07b308b380 100644 --- a/apps/permissions/conf/settings.py +++ b/apps/permissions/conf/settings.py @@ -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') ) diff --git a/apps/storage/conf/settings.py b/apps/storage/conf/settings.py index a410692e9e..2e65534236 100644 --- a/apps/storage/conf/settings.py +++ b/apps/storage/conf/settings.py @@ -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 ) diff --git a/apps/web_theme/conf/settings.py b/apps/web_theme/conf/settings.py index 405b2814fc..8d5e3922e6 100644 --- a/apps/web_theme/conf/settings.py +++ b/apps/web_theme/conf/settings.py @@ -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.') )