From a5cf80cd863be73b5dd512ea9268f8abf9410ac4 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Sat, 18 Jul 2015 02:24:10 -0400 Subject: [PATCH] Add management command to perform steps required after an upgrade. --- docs/releases/2.0.rst | 6 +++--- .../common/management/commands/performupgrade.py | 14 ++++++++++++++ mayan/apps/common/signals.py | 1 + mayan/apps/permissions/apps.py | 4 ++++ mayan/apps/permissions/handlers.py | 7 +++++++ 5 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 mayan/apps/common/management/commands/performupgrade.py create mode 100644 mayan/apps/permissions/handlers.py diff --git a/docs/releases/2.0.rst b/docs/releases/2.0.rst index fa810aefec..4c1a9874cc 100644 --- a/docs/releases/2.0.rst +++ b/docs/releases/2.0.rst @@ -69,7 +69,8 @@ What's new in Mayan EDMS v2.0 * Normalization of 'title' and 'name' fields to 'label' * Split tests files. * Document image and intermediate file caching now has it's own storage backend. - +* RGB tags +* ``performupgrade`` management command. Upgrading from a previous version ================================= @@ -102,8 +103,7 @@ Common steps Migrate existing database schema with:: - $ mayan-edms.py purge_permissions - $ mayan-edms.py migrate + $ mayan-edms.py performupgrade During the migration several messages of stale content types can occur: diff --git a/mayan/apps/common/management/commands/performupgrade.py b/mayan/apps/common/management/commands/performupgrade.py new file mode 100644 index 0000000000..ce8d8e2ffa --- /dev/null +++ b/mayan/apps/common/management/commands/performupgrade.py @@ -0,0 +1,14 @@ +from __future__ import unicode_literals + +from django.core import management + +from ...signals import perform_upgrade + + +class Command(management.BaseCommand): + help = 'Performs the required steps after a version upgrade.' + + def handle(self, *args, **options): + management.call_command('migrate', interactive=False) + management.call_command('purgeperiodictasks', interactive=False) + perform_upgrade.send(sender=self) diff --git a/mayan/apps/common/signals.py b/mayan/apps/common/signals.py index 8b91f2b550..49547ae89b 100644 --- a/mayan/apps/common/signals.py +++ b/mayan/apps/common/signals.py @@ -3,3 +3,4 @@ from __future__ import unicode_literals from django.dispatch import Signal post_initial_setup = Signal(use_caching=True) +perform_upgrade = Signal(use_caching=True) diff --git a/mayan/apps/permissions/apps.py b/mayan/apps/permissions/apps.py index 9b2806bc20..25e7d758ef 100644 --- a/mayan/apps/permissions/apps.py +++ b/mayan/apps/permissions/apps.py @@ -5,8 +5,10 @@ from django.utils.translation import ugettext_lazy as _ from common import ( MayanAppConfig, menu_multi_item, menu_object, menu_secondary, menu_setup ) +from common.signals import perform_upgrade from rest_api.classes import APIEndPoint +from .handlers import purge_permissions from .models import Role from .links import ( link_permission_grant, link_permission_revoke, link_role_create, @@ -28,3 +30,5 @@ class PermissionsApp(MayanAppConfig): menu_multi_item.bind_links(links=[link_permission_grant, link_permission_revoke], sources=['permissions:role_permissions']) menu_secondary.bind_links(links=[link_role_list, link_role_create], sources=[Role, 'permissions:role_create', 'permissions:role_list']) menu_setup.bind_links(links=[link_role_list]) + + perform_upgrade.connect(purge_permissions, dispatch_uid='purge_permissions') diff --git a/mayan/apps/permissions/handlers.py b/mayan/apps/permissions/handlers.py new file mode 100644 index 0000000000..06266c25cc --- /dev/null +++ b/mayan/apps/permissions/handlers.py @@ -0,0 +1,7 @@ +from __future__ import unicode_literals + +from django.core import management + + +def purge_permissions(**kwargs): + management.call_command('purgepermissions')