kopia lustrzana https://github.com/wagtail/wagtail
pull/8695/head
rodzic
996866fc06
commit
e2e356d0ae
|
|
@ -48,6 +48,7 @@ Changelog
|
|||
* Fix: Ensure non-square avatar images will correctly show throughout the admin (LB (Ben) Johnston)
|
||||
* Fix: Ignore translations in test files and re-include some translations that were accidentally ignored (Stefan Hammer)
|
||||
* Fix: Show alternative message when no page types are available to be created (Jaspreet Singh)
|
||||
* Fix: Prevent error on sending notifications for the legacy moderation process when no user was specified (Yves Serrano)
|
||||
|
||||
|
||||
3.0.1 (16.06.2022)
|
||||
|
|
|
|||
|
|
@ -602,6 +602,7 @@ Contributors
|
|||
* Benedict Faw
|
||||
* Lucie Le Frapper
|
||||
* Jaspreet Singh
|
||||
* Yves Serrano
|
||||
|
||||
Translators
|
||||
===========
|
||||
|
|
|
|||
|
|
@ -62,6 +62,7 @@ When using a queryset to render a list of images, you can now use the ``prefetch
|
|||
* Ensure non-square avatar images will correctly show throughout the admin (LB (Ben) Johnston)
|
||||
* Ignore translations in test files and re-include some translations that were accidentally ignored (Stefan Hammer)
|
||||
* Show alternative message when no page types are available to be created (Jaspreet Singh)
|
||||
* Prevent error on sending notifications for the legacy moderation process when no user was specified (Yves Serrano)
|
||||
|
||||
|
||||
## Upgrade considerations
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ def send_moderation_notification(revision, notification, excluded_user=None):
|
|||
)
|
||||
elif notification in ["rejected", "approved"]:
|
||||
# Get submitter
|
||||
recipient_users = [revision.user]
|
||||
recipient_users = [revision.user] if revision.user else []
|
||||
else:
|
||||
return False
|
||||
|
||||
|
|
|
|||
|
|
@ -370,3 +370,62 @@ class TestNotificationPreferences(TestCase, WagtailTestUtils):
|
|||
headers.issubset(msg_headers),
|
||||
msg="Message is missing the Auto-Submitted header.",
|
||||
)
|
||||
|
||||
|
||||
class TestApproveRejectModerationWithoutUser(TestCase, WagtailTestUtils):
|
||||
def setUp(self):
|
||||
self.submitter = self.create_superuser(
|
||||
username="submitter",
|
||||
email="submitter@email.com",
|
||||
password="password",
|
||||
)
|
||||
|
||||
self.user = self.login()
|
||||
|
||||
# Create a page and submit it for moderation
|
||||
root_page = Page.objects.get(id=2)
|
||||
self.page = SimplePage(
|
||||
title="Hello world!",
|
||||
slug="hello-world",
|
||||
content="hello",
|
||||
live=False,
|
||||
has_unpublished_changes=True,
|
||||
)
|
||||
root_page.add_child(instance=self.page)
|
||||
|
||||
# save_revision without user
|
||||
self.page.save_revision(submitted_for_moderation=True)
|
||||
self.revision = self.page.get_latest_revision()
|
||||
|
||||
def test_approve_moderation_view_without_user(self):
|
||||
"""
|
||||
This posts to the approve moderation view and checks that the page was approved
|
||||
"""
|
||||
# Connect a mock signal handler to page_published signal
|
||||
mock_handler = mock.MagicMock()
|
||||
page_published.connect(mock_handler)
|
||||
|
||||
# Post
|
||||
response = self.client.post(
|
||||
reverse("wagtailadmin_pages:approve_moderation", args=(self.revision.id,))
|
||||
)
|
||||
|
||||
# Check that the user was redirected to the dashboard
|
||||
self.assertRedirects(response, reverse("wagtailadmin_home"))
|
||||
|
||||
page = Page.objects.get(id=self.page.id)
|
||||
# Page must be live
|
||||
self.assertTrue(page.live, "Approving moderation failed to set live=True")
|
||||
# Page should now have no unpublished changes
|
||||
self.assertFalse(
|
||||
page.has_unpublished_changes,
|
||||
"Approving moderation failed to set has_unpublished_changes=False",
|
||||
)
|
||||
|
||||
# Check that the page_published signal was fired
|
||||
self.assertEqual(mock_handler.call_count, 1)
|
||||
mock_call = mock_handler.mock_calls[0][2]
|
||||
|
||||
self.assertEqual(mock_call["sender"], self.page.specific_class)
|
||||
self.assertEqual(mock_call["instance"], self.page)
|
||||
self.assertIsInstance(mock_call["instance"], self.page.specific_class)
|
||||
|
|
|
|||
Ładowanie…
Reference in New Issue