Disabling most signals on bulk creation

remotes/origin/enhancement/email-actions
Alejandro Alonso 2015-07-30 14:31:26 +02:00
parent 33e44d3d8e
commit f5f575267d
5 changed files with 38 additions and 7 deletions

View File

@ -24,6 +24,9 @@ from django.db import connection
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
from taiga.base.utils import db, text from taiga.base.utils import db, text
from taiga.projects.issues.apps import (
connect_issues_signals,
disconnect_issues_signals)
from . import models from . import models
@ -50,7 +53,14 @@ def create_issues_in_bulk(bulk_data, callback=None, precall=None, **additional_f
:return: List of created `Issue` instances. :return: List of created `Issue` instances.
""" """
issues = get_issues_from_bulk(bulk_data, **additional_fields) issues = get_issues_from_bulk(bulk_data, **additional_fields)
db.save_in_bulk(issues, callback, precall)
disconnect_issues_signals()
try:
db.save_in_bulk(issues, callback, precall)
finally:
connect_issues_signals()
return issues return issues

View File

@ -19,6 +19,9 @@ import csv
from taiga.base.utils import db, text from taiga.base.utils import db, text
from taiga.projects.history.services import take_snapshot from taiga.projects.history.services import take_snapshot
from taiga.projects.tasks.apps import (
connect_tasks_signals,
disconnect_tasks_signals)
from taiga.events import events from taiga.events import events
from . import models from . import models
@ -46,7 +49,14 @@ def create_tasks_in_bulk(bulk_data, callback=None, precall=None, **additional_fi
:return: List of created `Task` instances. :return: List of created `Task` instances.
""" """
tasks = get_tasks_from_bulk(bulk_data, **additional_fields) tasks = get_tasks_from_bulk(bulk_data, **additional_fields)
db.save_in_bulk(tasks, callback, precall)
disconnect_tasks_signals()
try:
db.save_in_bulk(tasks, callback, precall)
finally:
connect_tasks_signals()
return tasks return tasks

View File

@ -26,6 +26,10 @@ from django.utils.translation import ugettext as _
from taiga.base.utils import db, text from taiga.base.utils import db, text
from taiga.projects.history.services import take_snapshot from taiga.projects.history.services import take_snapshot
from taiga.projects.userstories.apps import (
connect_userstories_signals,
disconnect_userstories_signals)
from taiga.events import events from taiga.events import events
from . import models from . import models
@ -53,7 +57,14 @@ def create_userstories_in_bulk(bulk_data, callback=None, precall=None, **additio
:return: List of created `Task` instances. :return: List of created `Task` instances.
""" """
userstories = get_userstories_from_bulk(bulk_data, **additional_fields) userstories = get_userstories_from_bulk(bulk_data, **additional_fields)
db.save_in_bulk(userstories, callback, precall)
disconnect_userstories_signals()
try:
db.save_in_bulk(userstories, callback, precall)
finally:
connect_userstories_signals()
return userstories return userstories

View File

@ -16,11 +16,11 @@ import pytest
pytestmark = pytest.mark.django_db pytestmark = pytest.mark.django_db
def setup_module(module): def setup_function(function):
disconnect_signals() disconnect_signals()
def teardown_module(module): def setup_function(function):
reconnect_signals() reconnect_signals()

View File

@ -16,11 +16,11 @@ import pytest
pytestmark = pytest.mark.django_db pytestmark = pytest.mark.django_db
def setup_module(module): def setup_function(function):
disconnect_signals() disconnect_signals()
def teardown_module(module): def teardown_function(function):
reconnect_signals() reconnect_signals()