kopia lustrzana https://github.com/wagtail/wagtail
rodzic
114e25e7db
commit
b7c7f689e6
|
@ -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')}.",
|
||||
)
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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")
|
||||
|
|
Ładowanie…
Reference in New Issue