kopia lustrzana https://github.com/wagtail/wagtail
Log delete for all descendents of pages, not just direct children
This leads to a misleading audit log, where some pages aren't shown as being deletedpull/8313/head
rodzic
bfd513cc7a
commit
9183fc8f85
|
@ -33,9 +33,8 @@ class DeletePageAction:
|
|||
# works around a bug in treebeard <= 3.0 where calling SpecificPage.delete() fails to delete
|
||||
# child pages that are not instances of SpecificPage
|
||||
if type(page) is Page:
|
||||
if page.get_children().exists():
|
||||
for child in page.get_children():
|
||||
self.log_deletion(child.specific)
|
||||
for child in page.get_descendants():
|
||||
self.log_deletion(child.specific)
|
||||
self.log_deletion(page.specific)
|
||||
|
||||
# this is a Page instance, so carry on as we were
|
||||
|
|
|
@ -224,16 +224,23 @@ class TestAuditLog(TestCase):
|
|||
child = self.home_page.add_child(
|
||||
instance=SimplePage(title="Another child", slug="child-page-2", content="hello")
|
||||
)
|
||||
child.add_child(
|
||||
instance=SimplePage(
|
||||
title="Grandchild", slug="grandchild-page", content="hello"
|
||||
)
|
||||
)
|
||||
|
||||
child.delete()
|
||||
self.assertEqual(PageLogEntry.objects.filter(action='wagtail.delete').count(), 1)
|
||||
|
||||
# check deleting a parent page logs child deletion
|
||||
# check deleting a parent page logs descendent deletion
|
||||
self.home_page.delete()
|
||||
self.assertEqual(PageLogEntry.objects.filter(action='wagtail.delete').count(), 3)
|
||||
self.assertListEqual(
|
||||
list(PageLogEntry.objects.filter(action='wagtail.delete').values_list('label', flat=True)),
|
||||
['Homepage (simple page)', 'Child (simple page)', 'Another child (simple page)']
|
||||
self.assertEqual(PageLogEntry.objects.filter(action='wagtail.delete').count(), 4)
|
||||
self.assertEqual(
|
||||
set(PageLogEntry.objects.filter(action='wagtail.delete').values_list('label', flat=True)),
|
||||
{
|
||||
'Homepage (simple page)',
|
||||
'Grandchild (simple page)',
|
||||
'Child (simple page)',
|
||||
'Another child (simple page)',
|
||||
},
|
||||
)
|
||||
|
||||
def test_workflow_actions(self):
|
||||
|
|
Ładowanie…
Reference in New Issue