kopia lustrzana https://github.com/wagtail/wagtail
Fix crash when accessing workflow reports with a deleted snippet
This can happen if the model does not define GenericRelations correctlypull/11601/head
rodzic
1e47194d74
commit
5ad59c1a1a
|
@ -2412,7 +2412,7 @@ class TestPageWorkflowReport(BasePageWorkflowTests):
|
|||
self.submitter.first_name = "Sebastian"
|
||||
self.submitter.last_name = "Mitter"
|
||||
self.submitter.save()
|
||||
self.post("submit")
|
||||
self.post("submit", follow=True)
|
||||
self.login(user=self.moderator)
|
||||
|
||||
def setup_workflow_and_tasks(self):
|
||||
|
@ -2545,11 +2545,35 @@ class TestPageWorkflowReport(BasePageWorkflowTests):
|
|||
self.assertEqual(response.status_code, 200)
|
||||
self.assertNotIn("Hello world!", content)
|
||||
|
||||
def test_workflow_report_deleted(self):
|
||||
self.object.delete()
|
||||
response = self.client.get(reverse("wagtailadmin_reports:workflow"))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertNotContains(response, "Hello world!")
|
||||
# test_workflow is only rendered in the filter, not the results
|
||||
self.assertContains(response, "test_workflow", count=1)
|
||||
self.assertNotContains(response, "Sebastian Mitter")
|
||||
self.assertNotContains(response, "March 31, 2020")
|
||||
|
||||
response = self.client.get(reverse("wagtailadmin_reports:workflow_tasks"))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertNotContains(response, "Hello world!")
|
||||
|
||||
|
||||
class TestSnippetWorkflowReport(TestPageWorkflowReport, BaseSnippetWorkflowTests):
|
||||
pass
|
||||
|
||||
|
||||
class TestNonLockableSnippetWorkflowReport(
|
||||
TestPageWorkflowReport, BaseSnippetWorkflowTests
|
||||
):
|
||||
# This model does not use LockableMixin, and it also does not have a
|
||||
# GenericRelation to WorkflowState and Revision, but it should not break
|
||||
# the report page.
|
||||
# See https://github.com/wagtail/wagtail/issues/11300 for more details.
|
||||
model = ModeratedModel
|
||||
|
||||
|
||||
class TestPageNotificationPreferences(BasePageWorkflowTests):
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
|
|
|
@ -194,6 +194,9 @@ class WorkflowView(ReportView):
|
|||
.order_by("-created_at")
|
||||
)
|
||||
|
||||
def decorate_paginated_queryset(self, object_list):
|
||||
return [obj for obj in object_list if obj.content_object]
|
||||
|
||||
|
||||
class WorkflowTasksView(ReportView):
|
||||
template_name = "wagtailadmin/reports/workflow_tasks.html"
|
||||
|
@ -260,3 +263,6 @@ class WorkflowTasksView(ReportView):
|
|||
)
|
||||
.order_by("-started_at")
|
||||
)
|
||||
|
||||
def decorate_paginated_queryset(self, object_list):
|
||||
return [obj for obj in object_list if obj.workflow_state.content_object]
|
||||
|
|
Ładowanie…
Reference in New Issue