Merge pull request #411 from taigaio/fixing-signals-disconnection

Fixing signals disconnection
remotes/origin/enhancement/email-actions
Jesús Espino 2015-07-30 14:08:32 +02:00
commit 33e44d3d8e
6 changed files with 90 additions and 45 deletions

View File

@ -250,9 +250,9 @@ class ProjectViewSet(HistoryResourceMixin, ModelCrudViewSet):
def destroy(self, request, *args, **kwargs):
from taiga.events.apps import connect_events_signals, disconnect_events_signals
from taiga.projects.tasks.apps import connect_tasks_signals, disconnect_tasks_signals
from taiga.projects.userstories.apps import connect_userstories_signals, disconnect_userstories_signals
from taiga.projects.issues.apps import connect_issues_signals, disconnect_issues_signals
from taiga.projects.tasks.apps import connect_all_tasks_signals, disconnect_all_tasks_signals
from taiga.projects.userstories.apps import connect_all_userstories_signals, disconnect_all_userstories_signals
from taiga.projects.issues.apps import connect_all_issues_signals, disconnect_all_issues_signals
from taiga.projects.apps import connect_memberships_signals, disconnect_memberships_signals
obj = self.get_object_or_none()
@ -262,9 +262,9 @@ class ProjectViewSet(HistoryResourceMixin, ModelCrudViewSet):
raise Http404
disconnect_events_signals()
disconnect_issues_signals()
disconnect_tasks_signals()
disconnect_userstories_signals()
disconnect_all_issues_signals()
disconnect_all_tasks_signals()
disconnect_all_userstories_signals()
disconnect_memberships_signals()
try:
@ -275,9 +275,9 @@ class ProjectViewSet(HistoryResourceMixin, ModelCrudViewSet):
obj.roles.all().delete()
finally:
connect_events_signals()
connect_issues_signals()
connect_tasks_signals()
connect_userstories_signals()
connect_all_issues_signals()
connect_all_tasks_signals()
connect_all_userstories_signals()
connect_memberships_signals()
self.pre_delete(obj)

View File

@ -66,21 +66,21 @@ def connect_task_status_signals():
def disconnect_memberships_signals():
signals.pre_delete.disconnect(dispatch_uid='membership_pre_delete')
signals.post_delete.disconnect(dispatch_uid='update_watchers_on_membership_post_delete')
signals.post_save.disconnect(dispatch_uid='create-notify-policy')
signals.pre_delete.disconnect(sender=apps.get_model("projects", "Membership"), dispatch_uid='membership_pre_delete')
signals.post_delete.disconnect(sender=apps.get_model("projects", "Membership"), dispatch_uid='update_watchers_on_membership_post_delete')
signals.post_save.disconnect(sender=apps.get_model("projects", "Membership"), dispatch_uid='create-notify-policy')
def disconnect_projects_signals():
signals.post_save.disconnect(dispatch_uid='project_post_save')
signals.pre_save.disconnect(dispatch_uid="tags_normalization_projects")
signals.pre_save.disconnect(dispatch_uid="update_project_tags_when_create_or_edit_taggable_item_projects")
signals.post_save.disconnect(sender=apps.get_model("projects", "Project"), dispatch_uid='project_post_save')
signals.pre_save.disconnect(sender=apps.get_model("projects", "Project"), dispatch_uid="tags_normalization_projects")
signals.pre_save.disconnect(sender=apps.get_model("projects", "Project"), dispatch_uid="update_project_tags_when_create_or_edit_taggable_item_projects")
def disconnect_us_status_signals():
signals.post_save.disconnect(dispatch_uid="try_to_close_or_open_user_stories_when_edit_us_status")
signals.post_save.disconnect(sender=apps.get_model("projects", "UserStoryStatus"), dispatch_uid="try_to_close_or_open_user_stories_when_edit_us_status")
def disconnect_task_status_signals():
signals.post_save.disconnect(dispatch_uid="try_to_close_or_open_user_stories_when_edit_task_status")
signals.post_save.disconnect(sender=apps.get_model("projects", "TaskStatus"), dispatch_uid="try_to_close_or_open_user_stories_when_edit_task_status")
class ProjectsAppConfig(AppConfig):

View File

@ -40,17 +40,32 @@ def connect_issues_signals():
sender=apps.get_model("issues", "Issue"),
dispatch_uid="update_project_tags_when_delete_taggable_item_issue")
# Custom Attributes
def connect_issues_custom_attributes_signals():
signals.post_save.connect(custom_attributes_handlers.create_custom_attribute_value_when_create_issue,
sender=apps.get_model("issues", "Issue"),
dispatch_uid="create_custom_attribute_value_when_create_issue")
def connect_all_issues_signals():
connect_issues_signals()
connect_issues_custom_attributes_signals()
def disconnect_issues_signals():
signals.pre_save.disconnect(dispatch_uid="set_finished_date_when_edit_issue")
signals.pre_save.disconnect(dispatch_uid="tags_normalization_issue")
signals.post_save.disconnect(dispatch_uid="update_project_tags_when_create_or_edit_taggable_item_issue")
signals.post_delete.disconnect(dispatch_uid="update_project_tags_when_delete_taggable_item_issue")
signals.post_save.disconnect(dispatch_uid="create_custom_attribute_value_when_create_issue")
signals.pre_save.disconnect(sender=apps.get_model("issues", "Issue"), dispatch_uid="set_finished_date_when_edit_issue")
signals.pre_save.disconnect(sender=apps.get_model("issues", "Issue"), dispatch_uid="tags_normalization_issue")
signals.post_save.disconnect(sender=apps.get_model("issues", "Issue"), dispatch_uid="update_project_tags_when_create_or_edit_taggable_item_issue")
signals.post_delete.disconnect(sender=apps.get_model("issues", "Issue"), dispatch_uid="update_project_tags_when_delete_taggable_item_issue")
def disconnect_issues_custom_attributes_signals():
signals.post_save.disconnect(sender=apps.get_model("issues", "Issue"), dispatch_uid="create_custom_attribute_value_when_create_issue")
def disconnect_all_issues_signals():
disconnect_issues_signals()
disconnect_issues_custom_attributes_signals()
class IssuesAppConfig(AppConfig):
@ -58,4 +73,4 @@ class IssuesAppConfig(AppConfig):
verbose_name = "Issues"
def ready(self):
connect_issues_signals()
connect_all_issues_signals()

View File

@ -47,19 +47,34 @@ def connect_tasks_signals():
sender=apps.get_model("tasks", "Task"),
dispatch_uid="update_project_tags_when_delete_tagglabe_item_task")
# Custom Attributes
def connect_tasks_custom_attributes_signals():
signals.post_save.connect(custom_attributes_handlers.create_custom_attribute_value_when_create_task,
sender=apps.get_model("tasks", "Task"),
dispatch_uid="create_custom_attribute_value_when_create_task")
def connect_all_tasks_signals():
connect_tasks_signals()
connect_tasks_custom_attributes_signals()
def disconnect_tasks_signals():
signals.pre_save.disconnect(dispatch_uid="cached_prev_task")
signals.post_save.disconnect(dispatch_uid="try_to_close_or_open_us_and_milestone_when_create_or_edit_task")
signals.post_delete.disconnect(dispatch_uid="try_to_close_or_open_us_and_milestone_when_delete_task")
signals.pre_save.disconnect(dispatch_uid="tags_normalization")
signals.post_save.disconnect(dispatch_uid="update_project_tags_when_create_or_edit_tagglabe_item")
signals.post_delete.disconnect(dispatch_uid="update_project_tags_when_delete_tagglabe_item")
signals.post_save.disconnect(dispatch_uid="create_custom_attribute_value_when_create_task")
signals.pre_save.disconnect(sender=apps.get_model("tasks", "Task"), dispatch_uid="cached_prev_task")
signals.post_save.disconnect(sender=apps.get_model("tasks", "Task"), dispatch_uid="try_to_close_or_open_us_and_milestone_when_create_or_edit_task")
signals.post_delete.disconnect(sender=apps.get_model("tasks", "Task"), dispatch_uid="try_to_close_or_open_us_and_milestone_when_delete_task")
signals.pre_save.disconnect(sender=apps.get_model("tasks", "Task"), dispatch_uid="tags_normalization")
signals.post_save.disconnect(sender=apps.get_model("tasks", "Task"), dispatch_uid="update_project_tags_when_create_or_edit_tagglabe_item")
signals.post_delete.disconnect(sender=apps.get_model("tasks", "Task"), dispatch_uid="update_project_tags_when_delete_tagglabe_item")
def disconnect_tasks_custom_attributes_signals():
signals.post_save.disconnect(sender=apps.get_model("tasks", "Task"), dispatch_uid="create_custom_attribute_value_when_create_task")
def disconnect_all_tasks_signals():
disconnect_tasks_signals()
disconnect_tasks_custom_attributes_signals()
class TasksAppConfig(AppConfig):
@ -67,4 +82,4 @@ class TasksAppConfig(AppConfig):
verbose_name = "Tasks"
def ready(self):
connect_tasks_signals()
connect_all_tasks_signals()

View File

@ -58,21 +58,36 @@ def connect_userstories_signals():
sender=apps.get_model("userstories", "UserStory"),
dispatch_uid="update_project_tags_when_delete_taggable_item_user_story")
# Custom Attributes
def connect_userstories_custom_attributes_signals():
signals.post_save.connect(custom_attributes_handlers.create_custom_attribute_value_when_create_user_story,
sender=apps.get_model("userstories", "UserStory"),
dispatch_uid="create_custom_attribute_value_when_create_user_story")
def connect_all_userstories_signals():
connect_userstories_signals()
connect_userstories_custom_attributes_signals()
def disconnect_userstories_signals():
signals.pre_save.disconnect(dispatch_uid="cached_prev_us")
signals.post_save.disconnect(dispatch_uid="update_role_points_when_create_or_edit_us")
signals.post_save.disconnect(dispatch_uid="update_milestone_of_tasks_when_edit_us")
signals.post_save.disconnect(dispatch_uid="try_to_close_or_open_us_and_milestone_when_create_or_edit_us")
signals.post_delete.disconnect(dispatch_uid="try_to_close_milestone_when_delete_us")
signals.pre_save.disconnect(dispatch_uid="tags_normalization_user_story")
signals.post_save.disconnect(dispatch_uid="update_project_tags_when_create_or_edit_taggable_item_user_story")
signals.post_delete.disconnect(dispatch_uid="update_project_tags_when_delete_taggable_item_user_story")
signals.post_save.disconnect(dispatch_uid="create_custom_attribute_value_when_create_user_story")
signals.pre_save.disconnect(sender=apps.get_model("userstories", "UserStory"), dispatch_uid="cached_prev_us")
signals.post_save.disconnect(sender=apps.get_model("userstories", "UserStory"), dispatch_uid="update_role_points_when_create_or_edit_us")
signals.post_save.disconnect(sender=apps.get_model("userstories", "UserStory"), dispatch_uid="update_milestone_of_tasks_when_edit_us")
signals.post_save.disconnect(sender=apps.get_model("userstories", "UserStory"), dispatch_uid="try_to_close_or_open_us_and_milestone_when_create_or_edit_us")
signals.post_delete.disconnect(sender=apps.get_model("userstories", "UserStory"), dispatch_uid="try_to_close_milestone_when_delete_us")
signals.pre_save.disconnect(sender=apps.get_model("userstories", "UserStory"), dispatch_uid="tags_normalization_user_story")
signals.post_save.disconnect(sender=apps.get_model("userstories", "UserStory"), dispatch_uid="update_project_tags_when_create_or_edit_taggable_item_user_story")
signals.post_delete.disconnect(sender=apps.get_model("userstories", "UserStory"), dispatch_uid="update_project_tags_when_delete_taggable_item_user_story")
def disconnect_userstories_custom_attributes_signals():
signals.post_save.disconnect(sender=apps.get_model("userstories", "UserStory"), dispatch_uid="create_custom_attribute_value_when_create_user_story")
def disconnect_all_userstories_signals():
disconnect_userstories_signals()
disconnect_userstories_custom_attributes_signals()
class UserStoriesAppConfig(AppConfig):
@ -80,4 +95,4 @@ class UserStoriesAppConfig(AppConfig):
verbose_name = "User Stories"
def ready(self):
connect_userstories_signals()
connect_all_userstories_signals()

View File

@ -26,7 +26,7 @@ def connect_webhooks_signals():
def disconnect_webhooks_signals():
signals.post_save.disconnect(dispatch_uid="webhooks")
signals.post_save.disconnect(sender=HistoryEntry, dispatch_uid="webhooks")
class WebhooksAppConfig(AppConfig):