[Backport] Fix error when delete projects directly in the admin panel list

remotes/origin/issue/4795/notification_even_they_are_disabled
David Barragán Merino 2016-08-29 12:35:31 +02:00
parent ed9698760c
commit c10ba11ace
2 changed files with 34 additions and 1 deletions

View File

@ -176,8 +176,10 @@ class ProjectAdmin(admin.ModelAdmin):
## Actions ## Actions
actions = [ actions = [
"make_public", "make_public",
"make_private" "make_private",
"delete_selected"
] ]
@transaction.atomic @transaction.atomic
def make_public(self, request, queryset): def make_public(self, request, queryset):
total_updates = 0 total_updates = 0
@ -210,6 +212,36 @@ class ProjectAdmin(admin.ModelAdmin):
self.message_user(request, _("{count} successfully made private.").format(count=total_updates)) self.message_user(request, _("{count} successfully made private.").format(count=total_updates))
make_private.short_description = _("Make private") make_private.short_description = _("Make private")
def delete_selected(self, request, queryset):
# NOTE: This must be equal to taiga.projects.models.Project.delete_related_content
from taiga.events.apps import (connect_events_signals,
disconnect_events_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)
disconnect_events_signals()
disconnect_all_issues_signals()
disconnect_all_tasks_signals()
disconnect_all_userstories_signals()
disconnect_memberships_signals()
r = admin.actions.delete_selected(self, request, queryset)
connect_events_signals()
connect_all_issues_signals()
connect_all_tasks_signals()
connect_all_userstories_signals()
connect_memberships_signals()
return r
delete_selected.short_description = _("Delete selected %(verbose_name_plural)s")
# User Stories common admins # User Stories common admins
class PointsAdmin(admin.ModelAdmin): class PointsAdmin(admin.ModelAdmin):

View File

@ -467,6 +467,7 @@ class Project(ProjectDefaults, TaggedMixin, models.Model):
set_notify_policy_level_to_ignore(notify_policy) set_notify_policy_level_to_ignore(notify_policy)
def delete_related_content(self): def delete_related_content(self):
# NOTE: Remember to update code in taiga.projects.admin.ProjectAdmin.delete_selected
from taiga.events.apps import (connect_events_signals, from taiga.events.apps import (connect_events_signals,
disconnect_events_signals) disconnect_events_signals)
from taiga.projects.tasks.apps import (connect_all_tasks_signals, from taiga.projects.tasks.apps import (connect_all_tasks_signals,