Add setting migrations to apps

Add setting migrations for the common, converter, documents,
file metadata, and document signatures app.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
This commit is contained in:
Roberto Rosario
2019-11-18 00:54:02 -04:00
parent fa8fddb349
commit 327c795cf4
11 changed files with 111 additions and 6 deletions

View File

@@ -163,6 +163,9 @@
- Complete the prefixing of template tags with the - Complete the prefixing of template tags with the
app name. app name.
- Remove unused template tags. - 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) 3.2.10 (2019-XX-XX)
=================== ===================
@@ -189,7 +192,6 @@
Instead of throwing an error a sample label of Instead of throwing an error a sample label of
"Unknown action type" will be used and allow users to "Unknown action type" will be used and allow users to
delete the unknown state action. delete the unknown state action.
- Add support for setting migrations.
3.2.9 (2019-11-03) 3.2.9 (2019-11-03)
================== ==================

View File

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

View File

@@ -9,8 +9,12 @@ import mayan
from mayan.apps.smart_settings.classes import Namespace from mayan.apps.smart_settings.classes import Namespace
from .literals import DEFAULT_COMMON_HOME_VIEW 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( setting_auto_logging = namespace.add_setting(
global_name='COMMON_AUTO_LOGGING', global_name='COMMON_AUTO_LOGGING',

View File

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

View File

@@ -8,8 +8,12 @@ from .literals import (
DEFAULT_LIBREOFFICE_PATH, DEFAULT_PDFTOPPM_DPI, DEFAULT_PDFTOPPM_FORMAT, DEFAULT_LIBREOFFICE_PATH, DEFAULT_PDFTOPPM_DPI, DEFAULT_PDFTOPPM_FORMAT,
DEFAULT_PDFTOPPM_PATH, DEFAULT_PDFINFO_PATH, DEFAULT_PILLOW_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( setting_graphics_backend = namespace.add_setting(
default='mayan.apps.converter.backends.python.Python', default='mayan.apps.converter.backends.python.Python',

View File

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

View File

@@ -7,7 +7,13 @@ from django.utils.translation import ugettext_lazy as _
from mayan.apps.smart_settings.classes import Namespace 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( setting_storage_backend = namespace.add_setting(
default='django.core.files.storage.FileSystemStorage', default='django.core.files.storage.FileSystemStorage',

View File

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

View File

@@ -11,9 +11,13 @@ from .literals import (
DEFAULT_DOCUMENTS_CACHE_MAXIMUM_SIZE, DEFAULT_DOCUMENTS_HASH_BLOCK_SIZE, DEFAULT_DOCUMENTS_CACHE_MAXIMUM_SIZE, DEFAULT_DOCUMENTS_HASH_BLOCK_SIZE,
DEFAULT_LANGUAGE, DEFAULT_LANGUAGE_CODES DEFAULT_LANGUAGE, DEFAULT_LANGUAGE_CODES
) )
from .setting_migrations import DocumentsSettingMigration
from .utils import callback_update_cache_size 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( setting_document_cache_maximum_size = namespace.add_setting(
global_name='DOCUMENTS_CACHE_MAXIMUM_SIZE', global_name='DOCUMENTS_CACHE_MAXIMUM_SIZE',

View File

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

View File

@@ -5,8 +5,12 @@ from django.utils.translation import ugettext_lazy as _
from mayan.apps.smart_settings.classes import Namespace from mayan.apps.smart_settings.classes import Namespace
from .literals import DEFAULT_EXIF_PATH 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( setting_auto_process = namespace.add_setting(
global_name='FILE_METADATA_AUTO_PROCESS', default=True, global_name='FILE_METADATA_AUTO_PROCESS', default=True,