From 327c795cf4cfbe36152af033bbd2ea12144b062f Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Mon, 18 Nov 2019 00:54:02 -0400 Subject: [PATCH] Add setting migrations to apps Add setting migrations for the common, converter, documents, file metadata, and document signatures app. Signed-off-by: Roberto Rosario --- HISTORY.rst | 4 +++- mayan/apps/common/setting_migrations.py | 16 +++++++++++++++ mayan/apps/common/settings.py | 6 +++++- mayan/apps/converter/setting_migrations.py | 15 ++++++++++++++ mayan/apps/converter/settings.py | 6 +++++- .../document_signatures/setting_migrations.py | 15 ++++++++++++++ mayan/apps/document_signatures/settings.py | 8 +++++++- mayan/apps/documents/setting_migrations.py | 20 +++++++++++++++++++ mayan/apps/documents/settings.py | 6 +++++- .../apps/file_metadata/setting_migrations.py | 15 ++++++++++++++ mayan/apps/file_metadata/settings.py | 6 +++++- 11 files changed, 111 insertions(+), 6 deletions(-) create mode 100644 mayan/apps/common/setting_migrations.py create mode 100644 mayan/apps/converter/setting_migrations.py create mode 100644 mayan/apps/document_signatures/setting_migrations.py create mode 100644 mayan/apps/documents/setting_migrations.py create mode 100644 mayan/apps/file_metadata/setting_migrations.py diff --git a/HISTORY.rst b/HISTORY.rst index 6dc3af6bcd..c44e47e139 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -163,6 +163,9 @@ - Complete the prefixing of template tags with the app name. - Remove unused template tags. +- Add support for setting migrations. +- Add setting migrations for the common, converter, documents, + file metadata, and document signatures app. 3.2.10 (2019-XX-XX) =================== @@ -189,7 +192,6 @@ Instead of throwing an error a sample label of "Unknown action type" will be used and allow users to delete the unknown state action. -- Add support for setting migrations. 3.2.9 (2019-11-03) ================== diff --git a/mayan/apps/common/setting_migrations.py b/mayan/apps/common/setting_migrations.py new file mode 100644 index 0000000000..4bf1332f9c --- /dev/null +++ b/mayan/apps/common/setting_migrations.py @@ -0,0 +1,16 @@ +from __future__ import unicode_literals + +from mayan.apps.smart_settings.classes import NamespaceMigration + +from .serialization import yaml_load + + +class CommonSettingMigration(NamespaceMigration): + """ + From version 0001 to 0002 backend arguments are no longer quoted + but YAML valid too. Changed in version 3.3. + """ + def common_shared_storage_arguments_0001(self, value): + return yaml_load( + stream=value or '{}', + ) diff --git a/mayan/apps/common/settings.py b/mayan/apps/common/settings.py index c845cd0a6e..aff78fc20c 100644 --- a/mayan/apps/common/settings.py +++ b/mayan/apps/common/settings.py @@ -9,8 +9,12 @@ import mayan from mayan.apps.smart_settings.classes import Namespace from .literals import DEFAULT_COMMON_HOME_VIEW +from .setting_migrations import CommonSettingMigration -namespace = Namespace(label=_('Common'), name='common') +namespace = Namespace( + label=_('Common'), migration_class=CommonSettingMigration, + name='common', version='0002' +) setting_auto_logging = namespace.add_setting( global_name='COMMON_AUTO_LOGGING', diff --git a/mayan/apps/converter/setting_migrations.py b/mayan/apps/converter/setting_migrations.py new file mode 100644 index 0000000000..11ed7cc02e --- /dev/null +++ b/mayan/apps/converter/setting_migrations.py @@ -0,0 +1,15 @@ +from __future__ import unicode_literals + +from mayan.apps.common.serialization import yaml_load +from mayan.apps.smart_settings.classes import NamespaceMigration + + +class ConvertSettingMigration(NamespaceMigration): + """ + From version 0001 to 0002 backend arguments are no longer quoted + but YAML valid too. Changed in version 3.3. + """ + def converter_graphics_backend_arguments_0001(self, value): + return yaml_load( + stream=value or '{}', + ) diff --git a/mayan/apps/converter/settings.py b/mayan/apps/converter/settings.py index 0d30648fc2..26641999dc 100644 --- a/mayan/apps/converter/settings.py +++ b/mayan/apps/converter/settings.py @@ -8,8 +8,12 @@ from .literals import ( DEFAULT_LIBREOFFICE_PATH, DEFAULT_PDFTOPPM_DPI, DEFAULT_PDFTOPPM_FORMAT, DEFAULT_PDFTOPPM_PATH, DEFAULT_PDFINFO_PATH, DEFAULT_PILLOW_FORMAT ) +from .setting_migrations import ConvertSettingMigration -namespace = Namespace(label=_('Converter'), name='converter') +namespace = Namespace( + label=_('Converter'), migration_class=ConvertSettingMigration, + name='converter', version='0002' +) setting_graphics_backend = namespace.add_setting( default='mayan.apps.converter.backends.python.Python', diff --git a/mayan/apps/document_signatures/setting_migrations.py b/mayan/apps/document_signatures/setting_migrations.py new file mode 100644 index 0000000000..232048637c --- /dev/null +++ b/mayan/apps/document_signatures/setting_migrations.py @@ -0,0 +1,15 @@ +from __future__ import unicode_literals + +from mayan.apps.common.serialization import yaml_load +from mayan.apps.smart_settings.classes import NamespaceMigration + + +class DocumentSignaturesSettingMigration(NamespaceMigration): + """ + From version 0001 to 0002 backend arguments are no longer quoted + but YAML valid too. Changed in version 3.3. + """ + def signatures_storage_backend_arguments_0001(self, value): + return yaml_load( + stream=value or '{}', + ) diff --git a/mayan/apps/document_signatures/settings.py b/mayan/apps/document_signatures/settings.py index 7a5e9dcfe1..7c348bda68 100644 --- a/mayan/apps/document_signatures/settings.py +++ b/mayan/apps/document_signatures/settings.py @@ -7,7 +7,13 @@ from django.utils.translation import ugettext_lazy as _ from mayan.apps.smart_settings.classes import Namespace -namespace = Namespace(label=_('Document signatures'), name='signatures') +from .setting_migrations import DocumentSignaturesSettingMigration + +namespace = Namespace( + label=_('Document signatures'), + migration_class=DocumentSignaturesSettingMigration, name='signatures', + version='0002' +) setting_storage_backend = namespace.add_setting( default='django.core.files.storage.FileSystemStorage', diff --git a/mayan/apps/documents/setting_migrations.py b/mayan/apps/documents/setting_migrations.py new file mode 100644 index 0000000000..d45a470d22 --- /dev/null +++ b/mayan/apps/documents/setting_migrations.py @@ -0,0 +1,20 @@ +from __future__ import unicode_literals + +from mayan.apps.common.serialization import yaml_load +from mayan.apps.smart_settings.classes import NamespaceMigration + + +class DocumentsSettingMigration(NamespaceMigration): + """ + From version 0001 to 0002 backend arguments are no longer quoted + but YAML valid too. Changed in version 3.3. + """ + def documents_cache_storage_backend_arguments_0001(self, value): + return yaml_load( + stream=value or '{}', + ) + + def documents_storage_backend_arguments_0001(self, value): + return yaml_load( + stream=value or '{}', + ) diff --git a/mayan/apps/documents/settings.py b/mayan/apps/documents/settings.py index 8a666c8f11..26162f9f31 100644 --- a/mayan/apps/documents/settings.py +++ b/mayan/apps/documents/settings.py @@ -11,9 +11,13 @@ from .literals import ( DEFAULT_DOCUMENTS_CACHE_MAXIMUM_SIZE, DEFAULT_DOCUMENTS_HASH_BLOCK_SIZE, DEFAULT_LANGUAGE, DEFAULT_LANGUAGE_CODES ) +from .setting_migrations import DocumentsSettingMigration from .utils import callback_update_cache_size -namespace = Namespace(label=_('Documents'), name='documents') +namespace = Namespace( + label=_('Documents'), migration_class=DocumentsSettingMigration, + name='documents', version='0002' +) setting_document_cache_maximum_size = namespace.add_setting( global_name='DOCUMENTS_CACHE_MAXIMUM_SIZE', diff --git a/mayan/apps/file_metadata/setting_migrations.py b/mayan/apps/file_metadata/setting_migrations.py new file mode 100644 index 0000000000..9dc7732480 --- /dev/null +++ b/mayan/apps/file_metadata/setting_migrations.py @@ -0,0 +1,15 @@ +from __future__ import unicode_literals + +from mayan.apps.common.serialization import yaml_load +from mayan.apps.smart_settings.classes import NamespaceMigration + + +class FileMetadataSettingMigration(NamespaceMigration): + """ + From version 0001 to 0002 backend arguments are no longer quoted + but YAML valid too. Changed in version 3.3. + """ + def file_metadata_drivers_arguments_0001(self, value): + return yaml_load( + stream=value or '{}', + ) diff --git a/mayan/apps/file_metadata/settings.py b/mayan/apps/file_metadata/settings.py index b0f8c19064..eeb1006b21 100644 --- a/mayan/apps/file_metadata/settings.py +++ b/mayan/apps/file_metadata/settings.py @@ -5,8 +5,12 @@ from django.utils.translation import ugettext_lazy as _ from mayan.apps.smart_settings.classes import Namespace from .literals import DEFAULT_EXIF_PATH +from .setting_migrations import FileMetadataSettingMigration -namespace = Namespace(label=_('File metadata'), name='file_metadata') +namespace = Namespace( + label=_('File metadata'), migration_class=FileMetadataSettingMigration, + name='file_metadata', version='0002' +) setting_auto_process = namespace.add_setting( global_name='FILE_METADATA_AUTO_PROCESS', default=True,