Add post_upgrade signal, use it to re-initialize interval sources.

This commit is contained in:
Roberto Rosario
2015-07-18 02:45:55 -04:00
parent 0a83780527
commit 8f14028660
5 changed files with 23 additions and 7 deletions

View File

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

View File

@@ -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()

View File

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

View File

@@ -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')

View File

@@ -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()