diff --git a/HISTORY.rst b/HISTORY.rst index 315942b3e3..c561e137fa 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -114,7 +114,9 @@ revoke permissions for the selected role. - Only show the new document link if the user has access to create documents of at least one document type. GitLab Issue #302. Thanks to kg @kgraves. -- Remove the data filters feature. +- Support passing arguments to the document, document cache and document signatures + storage backends. New settings: DOCUMENTS_STORAGE_BACKEND_ARGUMENTS, + DOCUMENTS_CACHE_STORAGE_BACKEND_ARGUMENTS, SIGNATURES_STORAGE_BACKEND_ARGUMENTS 2.7.3 (2017-09-11) ================== diff --git a/mayan/apps/document_signatures/runtime.py b/mayan/apps/document_signatures/runtime.py index 7d5bdfc4ca..52000433f0 100644 --- a/mayan/apps/document_signatures/runtime.py +++ b/mayan/apps/document_signatures/runtime.py @@ -1,5 +1,17 @@ +from __future__ import unicode_literals + +import yaml + from django.utils.module_loading import import_string -from .settings import setting_storage_backend +from .settings import ( + setting_storage_backend, setting_storage_backend_arguments +) -storage_backend = import_string(setting_storage_backend.value)() +storage_backend = import_string( + dotted_path=setting_storage_backend.value +)( + **yaml.safe_load( + setting_storage_backend_arguments.value or '{}' + ) +) diff --git a/mayan/apps/document_signatures/settings.py b/mayan/apps/document_signatures/settings.py index 012b357694..edaf2d2a58 100644 --- a/mayan/apps/document_signatures/settings.py +++ b/mayan/apps/document_signatures/settings.py @@ -9,3 +9,7 @@ setting_storage_backend = namespace.add_setting( global_name='SIGNATURES_STORAGE_BACKEND', default='storage.backends.filebasedstorage.FileBasedStorage' ) +setting_storage_backend_arguments = namespace.add_setting( + global_name='SIGNATURES_STORAGE_BACKEND_ARGUMENTS', + default='' +) diff --git a/mayan/apps/documents/runtime.py b/mayan/apps/documents/runtime.py index b36c95e8c0..dd58e1d0bf 100644 --- a/mayan/apps/documents/runtime.py +++ b/mayan/apps/documents/runtime.py @@ -1,6 +1,26 @@ +from __future__ import unicode_literals + +import yaml + from django.utils.module_loading import import_string -from .settings import setting_cache_storage_backend, setting_storage_backend +from .settings import ( + setting_cache_storage_backend, setting_cache_storage_backend_arguments, + setting_storage_backend, setting_storage_backend_arguments +) -storage_backend = import_string(setting_storage_backend.value)() -cache_storage_backend = import_string(setting_cache_storage_backend.value)() +storage_backend = import_string( + dotted_path=setting_storage_backend.value +)( + **yaml.safe_load( + setting_storage_backend_arguments.value or '{}' + ) +) + +cache_storage_backend = import_string( + dotted_path=setting_cache_storage_backend.value +)( + **yaml.safe_load( + setting_cache_storage_backend_arguments.value or '{}' + ) +) diff --git a/mayan/apps/documents/settings.py b/mayan/apps/documents/settings.py index 21eb910b3c..5579ecda27 100644 --- a/mayan/apps/documents/settings.py +++ b/mayan/apps/documents/settings.py @@ -47,6 +47,10 @@ setting_storage_backend = namespace.add_setting( global_name='DOCUMENTS_STORAGE_BACKEND', default='storage.backends.filebasedstorage.FileBasedStorage' ) +setting_storage_backend_arguments = namespace.add_setting( + global_name='DOCUMENTS_STORAGE_BACKEND_ARGUMENTS', + default='' +) setting_zoom_percent_step = namespace.add_setting( global_name='DOCUMENTS_ZOOM_PERCENT_STEP', default=25, help_text=_( @@ -78,6 +82,10 @@ setting_cache_storage_backend = namespace.add_setting( global_name='DOCUMENTS_CACHE_STORAGE_BACKEND', default='documents.storage.LocalCacheFileStorage' ) +setting_cache_storage_backend_arguments = namespace.add_setting( + global_name='DOCUMENTS_CACHE_STORAGE_BACKEND_ARGUMENTS', + default='' +) setting_language = namespace.add_setting( global_name='DOCUMENTS_LANGUAGE', default='eng', help_text=_('Default documents language (in ISO639-2 format).')