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

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

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_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',

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

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_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',

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