Convert all apps to use the new class based settings

This commit is contained in:
Roberto Rosario
2012-03-06 16:08:28 -04:00
parent 11a9d87701
commit c9dcda3a5c
15 changed files with 476 additions and 203 deletions

View File

@@ -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'),
)

View File

@@ -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'},

View File

@@ -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,
)

View File

@@ -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.'),
)

View File

@@ -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
)

View File

@@ -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.')
)

View File

@@ -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.')
)

View File

@@ -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.')
)

View File

@@ -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.')
)

View File

@@ -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,

View File

@@ -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,
)

View File

@@ -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
)

View File

@@ -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')
)

View File

@@ -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
)

View File

@@ -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.')
)