Remove signals disconects on importing
parent
6d78c79018
commit
c49473dbdb
|
@ -24,6 +24,10 @@ def on_save_any_model(sender, instance, created, **kwargs):
|
|||
# Ignore any object that can not have project_id
|
||||
content_type = changes._get_type_for_model(instance)
|
||||
|
||||
# Ignore changes on import
|
||||
if getattr(instance, '_importing', False):
|
||||
return
|
||||
|
||||
# Ignore any other changes
|
||||
if content_type not in changes.watched_types:
|
||||
return
|
||||
|
|
|
@ -9,7 +9,6 @@ from django.db.models import signals
|
|||
from taiga.base.api.mixins import CreateModelMixin
|
||||
from taiga.base.api.viewsets import GenericViewSet
|
||||
from taiga.base.decorators import detail_route
|
||||
from taiga.base.utils.signals import without_signals
|
||||
from taiga.projects.models import Project, Membership
|
||||
|
||||
from . import serializers
|
||||
|
@ -32,7 +31,6 @@ class ProjectImporterViewSet(CreateModelMixin, GenericViewSet):
|
|||
data = request.DATA.copy()
|
||||
data['owner'] = data.get('owner', request.user.email)
|
||||
|
||||
with without_signals((signals.post_save, "project_post_save")):
|
||||
project_serialized = service.store_project(data)
|
||||
|
||||
if project_serialized is None:
|
||||
|
@ -103,7 +101,6 @@ class ProjectImporterViewSet(CreateModelMixin, GenericViewSet):
|
|||
project = self.get_object_or_none()
|
||||
self.check_permissions(request, 'import_item', project)
|
||||
|
||||
with without_signals((signals.post_save, "events_dispatcher_on_change", "refissue")):
|
||||
issue = service.store_issue(project, request.DATA)
|
||||
|
||||
errors = service.get_errors()
|
||||
|
@ -119,7 +116,6 @@ class ProjectImporterViewSet(CreateModelMixin, GenericViewSet):
|
|||
project = self.get_object_or_none()
|
||||
self.check_permissions(request, 'import_item', project)
|
||||
|
||||
with without_signals((signals.post_save, "events_dispatcher_on_change", "reftask")):
|
||||
task = service.store_task(project, request.DATA)
|
||||
|
||||
errors = service.get_errors()
|
||||
|
@ -135,7 +131,6 @@ class ProjectImporterViewSet(CreateModelMixin, GenericViewSet):
|
|||
project = self.get_object_or_none()
|
||||
self.check_permissions(request, 'import_item', project)
|
||||
|
||||
with without_signals((signals.post_save, "events_dispatcher_on_change", "refus")):
|
||||
us = service.store_user_story(project, request.DATA)
|
||||
|
||||
errors = service.get_errors()
|
||||
|
@ -151,7 +146,6 @@ class ProjectImporterViewSet(CreateModelMixin, GenericViewSet):
|
|||
project = self.get_object_or_none()
|
||||
self.check_permissions(request, 'import_item', project)
|
||||
|
||||
with without_signals((signals.post_save, "events_dispatcher_on_change")):
|
||||
milestone = service.store_milestone(project, request.DATA)
|
||||
|
||||
errors = service.get_errors()
|
||||
|
@ -167,7 +161,6 @@ class ProjectImporterViewSet(CreateModelMixin, GenericViewSet):
|
|||
project = self.get_object_or_none()
|
||||
self.check_permissions(request, 'import_item', project)
|
||||
|
||||
with without_signals((signals.post_save, "events_dispatcher_on_change")):
|
||||
wiki_page = service.store_wiki_page(project, request.DATA)
|
||||
|
||||
errors = service.get_errors()
|
||||
|
@ -183,7 +176,6 @@ class ProjectImporterViewSet(CreateModelMixin, GenericViewSet):
|
|||
project = self.get_object_or_none()
|
||||
self.check_permissions(request, 'import_item', project)
|
||||
|
||||
with without_signals((signals.post_save, "events_dispatcher_on_change")):
|
||||
wiki_link = service.store_wiki_link(project, request.DATA)
|
||||
|
||||
errors = service.get_errors()
|
||||
|
|
|
@ -16,8 +16,6 @@
|
|||
|
||||
from django.db.models import signals
|
||||
|
||||
from taiga.base.utils.signals import without_signals
|
||||
|
||||
from . import serializers
|
||||
from . import service
|
||||
|
||||
|
@ -76,7 +74,6 @@ def dict_to_project(data, owner=None):
|
|||
if owner:
|
||||
data['owner'] = owner
|
||||
|
||||
with without_signals([signals.post_save, "project_post_save"]):
|
||||
project_serialized = service.store_project(data)
|
||||
|
||||
if not project_serialized:
|
||||
|
@ -100,7 +97,6 @@ def dict_to_project(data, owner=None):
|
|||
if service.get_errors(clear=False):
|
||||
raise TaigaImportError('error importing default choices')
|
||||
|
||||
with without_signals([signals.post_save, "role_post_save"]):
|
||||
service.store_roles(proj, data)
|
||||
|
||||
if service.get_errors(clear=False):
|
||||
|
@ -121,37 +117,31 @@ def dict_to_project(data, owner=None):
|
|||
if service.get_errors(clear=False):
|
||||
raise TaigaImportError('error importing memberships')
|
||||
|
||||
with without_signals((signals.post_save, "events_dispatcher_on_change")):
|
||||
store_milestones(proj, data)
|
||||
|
||||
if service.get_errors(clear=False):
|
||||
raise TaigaImportError('error importing milestones')
|
||||
|
||||
with without_signals((signals.post_save, "events_dispatcher_on_change")):
|
||||
store_wiki_pages(proj, data)
|
||||
|
||||
if service.get_errors(clear=False):
|
||||
raise TaigaImportError('error importing wiki pages')
|
||||
|
||||
with without_signals((signals.post_save, "events_dispatcher_on_change")):
|
||||
store_wiki_links(proj, data)
|
||||
|
||||
if service.get_errors(clear=False):
|
||||
raise TaigaImportError('error importing wiki links')
|
||||
|
||||
with without_signals((signals.post_save, "events_dispatcher_on_change", "user_story_create_role_points_handler", "refus")):
|
||||
store_user_stories(proj, data)
|
||||
|
||||
if service.get_errors(clear=False):
|
||||
raise TaigaImportError('error importing user stories')
|
||||
|
||||
with without_signals((signals.post_save, "events_dispatcher_on_change", "refissue")):
|
||||
store_issues(proj, data)
|
||||
|
||||
if service.get_errors(clear=False):
|
||||
raise TaigaImportError('error importing issues')
|
||||
|
||||
with without_signals((signals.post_save, "events_dispatcher_on_change", "reftask")):
|
||||
store_tasks(proj, data)
|
||||
|
||||
if service.get_errors(clear=False):
|
||||
|
|
|
@ -81,7 +81,7 @@ def delete_sequence(sender, instance, **kwargs):
|
|||
|
||||
|
||||
def attach_sequence(sender, instance, created, **kwargs):
|
||||
if created:
|
||||
if created and not instance._importing:
|
||||
# Create a reference object. This operation should be
|
||||
# used in transaction context, otherwise it can
|
||||
# create a lot of phantom reference objects.
|
||||
|
|
Loading…
Reference in New Issue