From 8f14028660d72c3f99d8605997d812a024f33130 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Sat, 18 Jul 2015 02:45:55 -0400 Subject: [PATCH] Add post_upgrade signal, use it to re-initialize interval sources. --- .../common/management/commands/performupgrade.py | 3 ++- .../management/commands/purgeperiodictasks.py | 3 ++- mayan/apps/common/signals.py | 3 ++- mayan/apps/sources/apps.py | 8 +++++--- mayan/apps/sources/handlers.py | 13 ++++++++++++- 5 files changed, 23 insertions(+), 7 deletions(-) diff --git a/mayan/apps/common/management/commands/performupgrade.py b/mayan/apps/common/management/commands/performupgrade.py index ce8d8e2ffa..91713c3885 100644 --- a/mayan/apps/common/management/commands/performupgrade.py +++ b/mayan/apps/common/management/commands/performupgrade.py @@ -2,7 +2,7 @@ from __future__ import unicode_literals from django.core import management -from ...signals import perform_upgrade +from ...signals import perform_upgrade, post_upgrade class Command(management.BaseCommand): @@ -12,3 +12,4 @@ class Command(management.BaseCommand): management.call_command('migrate', interactive=False) management.call_command('purgeperiodictasks', interactive=False) perform_upgrade.send(sender=self) + post_upgrade.send(sender=self) diff --git a/mayan/apps/common/management/commands/purgeperiodictasks.py b/mayan/apps/common/management/commands/purgeperiodictasks.py index 823d78c0f8..835e47440d 100644 --- a/mayan/apps/common/management/commands/purgeperiodictasks.py +++ b/mayan/apps/common/management/commands/purgeperiodictasks.py @@ -2,7 +2,7 @@ from __future__ import unicode_literals from django.core import management -from djcelery.models import PeriodicTask +from djcelery.models import IntervalSchedule, PeriodicTask class Command(management.BaseCommand): @@ -10,3 +10,4 @@ class Command(management.BaseCommand): def handle(self, *args, **options): PeriodicTask.objects.all().delete() + IntervalSchedule.objects.all().delete() diff --git a/mayan/apps/common/signals.py b/mayan/apps/common/signals.py index 49547ae89b..5f1b6bb9da 100644 --- a/mayan/apps/common/signals.py +++ b/mayan/apps/common/signals.py @@ -2,5 +2,6 @@ from __future__ import unicode_literals from django.dispatch import Signal -post_initial_setup = Signal(use_caching=True) perform_upgrade = Signal(use_caching=True) +post_initial_setup = Signal(use_caching=True) +post_upgrade = Signal(use_caching=True) diff --git a/mayan/apps/sources/apps.py b/mayan/apps/sources/apps.py index 34ee8bc4e5..6f0c315a9b 100644 --- a/mayan/apps/sources/apps.py +++ b/mayan/apps/sources/apps.py @@ -8,7 +8,7 @@ from common import ( MayanAppConfig, MissingItem, menu_front_page, menu_object, menu_secondary, menu_sidebar, menu_setup ) -from common.signals import post_initial_setup +from common.signals import post_initial_setup, post_upgrade from common.utils import encapsulate from converter.links import link_transformation_list from documents.models import Document @@ -19,7 +19,8 @@ from rest_api.classes import APIEndPoint from .classes import StagingFile from .handlers import ( - copy_transformations_to_version, create_default_document_source + copy_transformations_to_version, create_default_document_source, + initialize_periodic_tasks ) from .links import ( link_document_create_multiple, link_document_create_siblings, @@ -32,7 +33,7 @@ from .links import ( ) from .models import ( POP3Email, IMAPEmail, Source, StagingFolderSource, WatchFolderSource, - WebFormSource, + WebFormSource ) from .widgets import staging_file_thumbnail @@ -79,5 +80,6 @@ class SourcesApp(MayanAppConfig): menu_setup.bind_links(links=[link_setup_sources]) menu_sidebar.bind_links(links=[link_upload_version], sources=['documents:document_version_list', 'documents:upload_version', 'documents:document_version_revert']) + post_upgrade.connect(initialize_periodic_tasks, dispatch_uid='initialize_periodic_tasks') post_initial_setup.connect(create_default_document_source, dispatch_uid='create_default_document_source') post_version_upload.connect(copy_transformations_to_version, dispatch_uid='copy_transformations_to_version') diff --git a/mayan/apps/sources/handlers.py b/mayan/apps/sources/handlers.py index be8c38cebf..53b699a84f 100644 --- a/mayan/apps/sources/handlers.py +++ b/mayan/apps/sources/handlers.py @@ -5,7 +5,7 @@ from django.utils.translation import ugettext_lazy as _ from converter.models import Transformation from .literals import SOURCE_UNCOMPRESS_CHOICE_ASK -from .models import WebFormSource +from .models import POP3Email, IMAPEmail, WatchFolderSource, WebFormSource def create_default_document_source(sender, **kwargs): @@ -16,3 +16,14 @@ def copy_transformations_to_version(sender, **kwargs): instance = kwargs['instance'] Transformation.objects.copy(source=instance.document, targets=instance.pages.all()) + + +def initialize_periodic_tasks(**kwargs): + for source in POP3Email.objects.filter(enabled=True): + source.save() + + for source in IMAPEmail.objects.filter(enabled=True): + source.save() + + for source in WatchFolderSource.objects.filter(enabled=True): + source.save()