Add missing log information for wagtail.schedule.cancel

Fixes #9595
pull/9628/head
Stefan Hammer 2022-11-08 12:14:49 +01:00 zatwierdzone przez Sage Abdullah
rodzic 114e25e7db
commit b7c7f689e6
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: EB1A33CC51CC0217
3 zmienionych plików z 83 dodań i 6 usunięć

Wyświetl plik

@ -1,5 +1,6 @@
from datetime import timedelta
from django.conf import settings
from django.contrib.auth.models import Group, Permission
from django.test import TestCase
from django.urls import reverse
@ -255,3 +256,74 @@ class TestAuditLogAdmin(WagtailTestUtils, TestCase):
list(entries),
["wagtail.create", "wagtail.publish", "wagtail.rename", "wagtail.revert"],
)
def test_page_history_after_unscheduled_publication(self):
# schedule for publishing
go_live_at = timezone.now() + timedelta(minutes=30)
if settings.USE_TZ:
go_live_at = timezone.localtime(go_live_at)
self.hello_page.go_live_at = go_live_at
revision = self.hello_page.save_revision(log_action=True)
revision.publish()
self.login(user=self.editor)
response = self.client.post(
reverse(
"wagtailadmin_pages:revisions_unschedule",
args=(self.hello_page.id, revision.id),
)
)
history_url = reverse(
"wagtailadmin_pages:history", kwargs={"page_id": self.hello_page.id}
)
self.assertRedirects(
response,
history_url,
)
response = self.client.get(history_url)
self.assertEqual(response.status_code, 200)
self.assertContains(
response,
f"Page unscheduled for publishing at {go_live_at.strftime('%d %b %Y %H:%M')}",
)
def test_page_history_after_unscheduled_revision(self):
# Prepare clean live page with revisions
test_page = SimplePage(title="About", slug="about", content="hello")
self.hello_page.add_child(instance=test_page)
revision = test_page.save_revision(log_action=True)
revision.publish()
test_page.refresh_from_db()
# Schedule a new version for publishing
go_live_at = timezone.now() + timedelta(minutes=30)
if settings.USE_TZ:
go_live_at = timezone.localtime(go_live_at)
test_page.go_live_at = go_live_at
revision = test_page.save_revision(log_action=True)
revision.publish()
self.login(user=self.editor)
response = self.client.post(
reverse(
"wagtailadmin_pages:revisions_unschedule",
args=(test_page.id, revision.id),
)
)
history_url = reverse(
"wagtailadmin_pages:history", kwargs={"page_id": test_page.id}
)
self.assertRedirects(
response,
history_url,
)
response = self.client.get(history_url)
self.assertEqual(response.status_code, 200)
self.assertContains(
response,
f"Revision {revision.id} from {revision.created_at.strftime('%d %b %Y %H:%M')} unscheduled from publishing at {go_live_at.strftime('%d %b %Y %H:%M')}.",
)

Wyświetl plik

@ -2840,6 +2840,7 @@ class Revision(models.Model):
"go_live_at": object.go_live_at.strftime("%d %b %Y %H:%M")
if object.go_live_at
else None,
"has_live_version": object.live,
}
},
user=user,

Wyświetl plik

@ -197,21 +197,25 @@ class TestAuditLog(TestCase):
)
def test_revision_cancel_schedule(self):
go_live_at = datetime.now() + timedelta(days=1)
if settings.USE_TZ:
self.home_page.go_live_at = timezone.make_aware(
datetime.now() + timedelta(days=1)
)
else:
self.home_page.go_live_at = datetime.now() + timedelta(days=1)
go_live_at = timezone.make_aware(go_live_at)
self.home_page.go_live_at = go_live_at
revision = self.home_page.save_revision()
revision.publish()
revision.approved_go_live_at = None
revision.save(update_fields=["approved_go_live_at"])
log_entries = PageLogEntry.objects.filter(action="wagtail.schedule.cancel")
self.assertEqual(log_entries.count(), 1)
self.assertEqual(log_entries[0].data["revision"]["id"], revision.id)
self.assertEqual(
PageLogEntry.objects.filter(action="wagtail.schedule.cancel").count(), 1
log_entries[0].data["revision"]["go_live_at"],
go_live_at.strftime("%d %b %Y %H:%M"),
)
# The home_page was live already and we've only cancelled the publication of the above revision.
self.assertTrue(log_entries[0].data["revision"]["has_live_version"])
def test_page_lock_unlock(self):
self.home_page.save(log_action="wagtail.lock")