mirror of
https://github.com/Hopiu/wagtail.git
synced 2026-05-11 16:53:10 +00:00
Renamed scheduled publishing fields
This commit is contained in:
parent
8dfd0c623f
commit
3fa98ef82e
5 changed files with 116 additions and 116 deletions
|
|
@ -78,14 +78,14 @@ class TestPageCreation(TestCase):
|
|||
self.assertFalse(page.live)
|
||||
|
||||
def test_create_simplepage_scheduled(self):
|
||||
go_live_datetime = timezone.now() + timedelta(days=1)
|
||||
expiry_datetime = timezone.now() + timedelta(days=2)
|
||||
go_live_at = timezone.now() + timedelta(days=1)
|
||||
expire_at = timezone.now() + timedelta(days=2)
|
||||
post_data = {
|
||||
'title': "New page!",
|
||||
'content': "Some content",
|
||||
'slug': 'hello-world',
|
||||
'go_live_datetime': str(go_live_datetime).split('.')[0],
|
||||
'expiry_datetime': str(expiry_datetime).split('.')[0],
|
||||
'go_live_at': str(go_live_at).split('.')[0],
|
||||
'expire_at': str(expire_at).split('.')[0],
|
||||
}
|
||||
response = self.client.post(reverse('wagtailadmin_pages_create', args=('tests', 'simplepage', self.root_page.id)), post_data)
|
||||
|
||||
|
|
@ -94,21 +94,21 @@ class TestPageCreation(TestCase):
|
|||
|
||||
# Find the page and check the scheduled times
|
||||
page = Page.objects.get(path__startswith=self.root_page.path, slug='hello-world').specific
|
||||
self.assertEquals(page.go_live_datetime.date(), go_live_datetime.date())
|
||||
self.assertEquals(page.expiry_datetime.date(), expiry_datetime.date())
|
||||
self.assertEquals(page.go_live_at.date(), go_live_at.date())
|
||||
self.assertEquals(page.expire_at.date(), expire_at.date())
|
||||
self.assertEquals(page.expired, False)
|
||||
self.assertTrue(page.status_string, "draft")
|
||||
|
||||
# No revisions with approved_go_live_datetime
|
||||
self.assertFalse(PageRevision.objects.filter(page=page).exclude(approved_go_live_datetime__isnull=True).exists())
|
||||
# No revisions with approved_go_live_at
|
||||
self.assertFalse(PageRevision.objects.filter(page=page).exclude(approved_go_live_at__isnull=True).exists())
|
||||
|
||||
def test_create_simplepage_scheduled_go_live_before_expiry(self):
|
||||
post_data = {
|
||||
'title': "New page!",
|
||||
'content': "Some content",
|
||||
'slug': 'hello-world',
|
||||
'go_live_datetime': str(timezone.now() + timedelta(days=2)).split('.')[0],
|
||||
'expiry_datetime': str(timezone.now() + timedelta(days=1)).split('.')[0],
|
||||
'go_live_at': str(timezone.now() + timedelta(days=2)).split('.')[0],
|
||||
'expire_at': str(timezone.now() + timedelta(days=1)).split('.')[0],
|
||||
}
|
||||
response = self.client.post(reverse('wagtailadmin_pages_create', args=('tests', 'simplepage', self.root_page.id)), post_data)
|
||||
|
||||
|
|
@ -121,7 +121,7 @@ class TestPageCreation(TestCase):
|
|||
'title': "New page!",
|
||||
'content': "Some content",
|
||||
'slug': 'hello-world',
|
||||
'expiry_datetime': str(timezone.now() + timedelta(days=-1)).split('.')[0],
|
||||
'expire_at': str(timezone.now() + timedelta(days=-1)).split('.')[0],
|
||||
}
|
||||
response = self.client.post(reverse('wagtailadmin_pages_create', args=('tests', 'simplepage', self.root_page.id)), post_data)
|
||||
|
||||
|
|
@ -148,15 +148,15 @@ class TestPageCreation(TestCase):
|
|||
self.assertTrue(page.live)
|
||||
|
||||
def test_create_simplepage_post_publish_scheduled(self):
|
||||
go_live_datetime = timezone.now() + timedelta(days=1)
|
||||
expiry_datetime = timezone.now() + timedelta(days=2)
|
||||
go_live_at = timezone.now() + timedelta(days=1)
|
||||
expire_at = timezone.now() + timedelta(days=2)
|
||||
post_data = {
|
||||
'title': "New page!",
|
||||
'content': "Some content",
|
||||
'slug': 'hello-world',
|
||||
'action-publish': "Publish",
|
||||
'go_live_datetime': str(go_live_datetime).split('.')[0],
|
||||
'expiry_datetime': str(expiry_datetime).split('.')[0],
|
||||
'go_live_at': str(go_live_at).split('.')[0],
|
||||
'expire_at': str(expire_at).split('.')[0],
|
||||
}
|
||||
response = self.client.post(reverse('wagtailadmin_pages_create', args=('tests', 'simplepage', self.root_page.id)), post_data)
|
||||
|
||||
|
|
@ -165,12 +165,12 @@ class TestPageCreation(TestCase):
|
|||
|
||||
# Find the page and check it
|
||||
page = Page.objects.get(path__startswith=self.root_page.path, slug='hello-world').specific
|
||||
self.assertEquals(page.go_live_datetime.date(), go_live_datetime.date())
|
||||
self.assertEquals(page.expiry_datetime.date(), expiry_datetime.date())
|
||||
self.assertEquals(page.go_live_at.date(), go_live_at.date())
|
||||
self.assertEquals(page.expire_at.date(), expire_at.date())
|
||||
self.assertEquals(page.expired, False)
|
||||
|
||||
# A revision with approved_go_live_datetime should exist now
|
||||
self.assertTrue(PageRevision.objects.filter(page=page).exclude(approved_go_live_datetime__isnull=True).exists())
|
||||
# A revision with approved_go_live_at should exist now
|
||||
self.assertTrue(PageRevision.objects.filter(page=page).exclude(approved_go_live_at__isnull=True).exists())
|
||||
# But Page won't be live
|
||||
self.assertFalse(page.live)
|
||||
self.assertTrue(page.status_string, "scheduled")
|
||||
|
|
@ -250,14 +250,14 @@ class TestPageEdit(TestCase):
|
|||
self.assertTrue(child_page_new.has_unpublished_changes)
|
||||
|
||||
def test_edit_post_scheduled(self):
|
||||
go_live_datetime = timezone.now() + timedelta(days=1)
|
||||
expiry_datetime = timezone.now() + timedelta(days=2)
|
||||
go_live_at = timezone.now() + timedelta(days=1)
|
||||
expire_at = timezone.now() + timedelta(days=2)
|
||||
post_data = {
|
||||
'title': "I've been edited!",
|
||||
'content': "Some content",
|
||||
'slug': 'hello-world',
|
||||
'go_live_datetime': str(go_live_datetime).split('.')[0],
|
||||
'expiry_datetime': str(expiry_datetime).split('.')[0],
|
||||
'go_live_at': str(go_live_at).split('.')[0],
|
||||
'expire_at': str(expire_at).split('.')[0],
|
||||
}
|
||||
response = self.client.post(reverse('wagtailadmin_pages_edit', args=(self.child_page.id, )), post_data)
|
||||
|
||||
|
|
@ -268,11 +268,11 @@ class TestPageEdit(TestCase):
|
|||
|
||||
# The page will still be live
|
||||
self.assertTrue(child_page_new.live)
|
||||
# A revision with approved_go_live_datetime should not exist
|
||||
self.assertFalse(PageRevision.objects.filter(page=child_page_new).exclude(approved_go_live_datetime__isnull=True).exists())
|
||||
# But a revision with go_live_datetime and expiry_datetime in their content json *should* exist
|
||||
self.assertTrue(PageRevision.objects.filter(page=child_page_new, content_json__contains=str(go_live_datetime.date())).exists())
|
||||
self.assertTrue(PageRevision.objects.filter(page=child_page_new, content_json__contains=str(expiry_datetime.date())).exists())
|
||||
# A revision with approved_go_live_at should not exist
|
||||
self.assertFalse(PageRevision.objects.filter(page=child_page_new).exclude(approved_go_live_at__isnull=True).exists())
|
||||
# But a revision with go_live_at and expire_at in their content json *should* exist
|
||||
self.assertTrue(PageRevision.objects.filter(page=child_page_new, content_json__contains=str(go_live_at.date())).exists())
|
||||
self.assertTrue(PageRevision.objects.filter(page=child_page_new, content_json__contains=str(expire_at.date())).exists())
|
||||
|
||||
def test_edit_post_publish(self):
|
||||
# Tests publish from edit page
|
||||
|
|
@ -295,15 +295,15 @@ class TestPageEdit(TestCase):
|
|||
self.assertFalse(child_page_new.has_unpublished_changes)
|
||||
|
||||
def test_edit_post_publish_scheduled(self):
|
||||
go_live_datetime = timezone.now() + timedelta(days=1)
|
||||
expiry_datetime = timezone.now() + timedelta(days=2)
|
||||
go_live_at = timezone.now() + timedelta(days=1)
|
||||
expire_at = timezone.now() + timedelta(days=2)
|
||||
post_data = {
|
||||
'title': "I've been edited!",
|
||||
'content': "Some content",
|
||||
'slug': 'hello-world',
|
||||
'action-publish': "Publish",
|
||||
'go_live_datetime': str(go_live_datetime).split('.')[0],
|
||||
'expiry_datetime': str(expiry_datetime).split('.')[0],
|
||||
'go_live_at': str(go_live_at).split('.')[0],
|
||||
'expire_at': str(expire_at).split('.')[0],
|
||||
}
|
||||
response = self.client.post(reverse('wagtailadmin_pages_edit', args=(self.child_page.id, )), post_data)
|
||||
|
||||
|
|
@ -313,20 +313,20 @@ class TestPageEdit(TestCase):
|
|||
child_page_new = SimplePage.objects.get(id=self.child_page.id)
|
||||
# The page should not be live anymore
|
||||
self.assertFalse(child_page_new.live)
|
||||
# Instead a revision with approved_go_live_datetime should now exist
|
||||
self.assertTrue(PageRevision.objects.filter(page=child_page_new).exclude(approved_go_live_datetime__isnull=True).exists())
|
||||
# Instead a revision with approved_go_live_at should now exist
|
||||
self.assertTrue(PageRevision.objects.filter(page=child_page_new).exclude(approved_go_live_at__isnull=True).exists())
|
||||
|
||||
def test_edit_post_publish_now_an_already_scheduled(self):
|
||||
# First let's publish a page with a go_live_datetime in the future
|
||||
go_live_datetime = timezone.now() + timedelta(days=1)
|
||||
expiry_datetime = timezone.now() + timedelta(days=2)
|
||||
# First let's publish a page with a go_live_at in the future
|
||||
go_live_at = timezone.now() + timedelta(days=1)
|
||||
expire_at = timezone.now() + timedelta(days=2)
|
||||
post_data = {
|
||||
'title': "I've been edited!",
|
||||
'content': "Some content",
|
||||
'slug': 'hello-world',
|
||||
'action-publish': "Publish",
|
||||
'go_live_datetime': str(go_live_datetime).split('.')[0],
|
||||
'expiry_datetime': str(expiry_datetime).split('.')[0],
|
||||
'go_live_at': str(go_live_at).split('.')[0],
|
||||
'expire_at': str(expire_at).split('.')[0],
|
||||
}
|
||||
response = self.client.post(reverse('wagtailadmin_pages_edit', args=(self.child_page.id, )), post_data)
|
||||
|
||||
|
|
@ -336,17 +336,17 @@ class TestPageEdit(TestCase):
|
|||
child_page_new = SimplePage.objects.get(id=self.child_page.id)
|
||||
# The page should not be live anymore
|
||||
self.assertFalse(child_page_new.live)
|
||||
# Instead a revision with approved_go_live_datetime should now exist
|
||||
self.assertTrue(PageRevision.objects.filter(page=child_page_new).exclude(approved_go_live_datetime__isnull=True).exists())
|
||||
# Instead a revision with approved_go_live_at should now exist
|
||||
self.assertTrue(PageRevision.objects.filter(page=child_page_new).exclude(approved_go_live_at__isnull=True).exists())
|
||||
|
||||
# Now, let's edit it and publish it right now
|
||||
go_live_datetime = timezone.now()
|
||||
go_live_at = timezone.now()
|
||||
post_data = {
|
||||
'title': "I've been edited!",
|
||||
'content': "Some content",
|
||||
'slug': 'hello-world',
|
||||
'action-publish': "Publish",
|
||||
'go_live_datetime': "",
|
||||
'go_live_at': "",
|
||||
}
|
||||
response = self.client.post(reverse('wagtailadmin_pages_edit', args=(self.child_page.id, )), post_data)
|
||||
|
||||
|
|
@ -356,8 +356,8 @@ class TestPageEdit(TestCase):
|
|||
child_page_new = SimplePage.objects.get(id=self.child_page.id)
|
||||
# The page should be live now
|
||||
self.assertTrue(child_page_new.live)
|
||||
# And a revision with approved_go_live_datetime should not exist
|
||||
self.assertFalse(PageRevision.objects.filter(page=child_page_new).exclude(approved_go_live_datetime__isnull=True).exists())
|
||||
# And a revision with approved_go_live_at should not exist
|
||||
self.assertFalse(PageRevision.objects.filter(page=child_page_new).exclude(approved_go_live_at__isnull=True).exists())
|
||||
|
||||
class TestPageDelete(TestCase):
|
||||
def setUp(self):
|
||||
|
|
@ -483,60 +483,60 @@ class TestPublishScheduledPages(TestCase):
|
|||
page.title = "Hello world!"
|
||||
page.slug = "hello-world"
|
||||
page.live = False
|
||||
page.go_live_datetime = timezone.now() - timedelta(days=1)
|
||||
page.go_live_at = timezone.now() - timedelta(days=1)
|
||||
self.root_page.add_child(instance=page)
|
||||
|
||||
page.save_revision(
|
||||
approved_go_live_datetime = timezone.now() - timedelta(days=1)
|
||||
approved_go_live_at = timezone.now() - timedelta(days=1)
|
||||
)
|
||||
p = Page.objects.get(slug='hello-world')
|
||||
self.assertFalse(p.live)
|
||||
self.assertTrue(PageRevision.objects.filter(page=p).exclude(approved_go_live_datetime__isnull=True).exists())
|
||||
self.assertTrue(PageRevision.objects.filter(page=p).exclude(approved_go_live_at__isnull=True).exists())
|
||||
management.call_command('publish_scheduled_pages', verbosity=3, interactive=False)
|
||||
#management.call_command('publish_scheduled_pages', dryrun=True, verbosity=3, interactive=False)
|
||||
p = Page.objects.get(slug='hello-world')
|
||||
self.assertTrue(p.live)
|
||||
self.assertFalse(PageRevision.objects.filter(page=p).exclude(approved_go_live_datetime__isnull=True).exists())
|
||||
self.assertFalse(PageRevision.objects.filter(page=p).exclude(approved_go_live_at__isnull=True).exists())
|
||||
|
||||
def test_go_live_page_will_be_published(self):
|
||||
page = SimplePage()
|
||||
page.title = "Hello world!"
|
||||
page.slug = "hello-world"
|
||||
page.live = False
|
||||
page.go_live_datetime = timezone.now() - timedelta(days=1)
|
||||
page.go_live_at = timezone.now() - timedelta(days=1)
|
||||
self.root_page.add_child(instance=page)
|
||||
|
||||
page.save_revision(approved_go_live_datetime = timezone.now() - timedelta(days=1))
|
||||
page.save_revision(approved_go_live_at = timezone.now() - timedelta(days=1))
|
||||
p = Page.objects.get(slug='hello-world')
|
||||
self.assertFalse(p.live)
|
||||
self.assertTrue(PageRevision.objects.filter(page=p).exclude(approved_go_live_datetime__isnull=True).exists())
|
||||
self.assertTrue(PageRevision.objects.filter(page=p).exclude(approved_go_live_at__isnull=True).exists())
|
||||
management.call_command('publish_scheduled_pages', )
|
||||
p = Page.objects.get(slug='hello-world')
|
||||
self.assertTrue(p.live)
|
||||
self.assertFalse(PageRevision.objects.filter(page=p).exclude(approved_go_live_datetime__isnull=True).exists())
|
||||
self.assertFalse(PageRevision.objects.filter(page=p).exclude(approved_go_live_at__isnull=True).exists())
|
||||
|
||||
def test_future_go_live_page_will_not_be_published(self):
|
||||
page = SimplePage()
|
||||
page.title = "Hello world!"
|
||||
page.slug = "hello-world"
|
||||
page.live = False
|
||||
page.go_live_datetime = timezone.now() + timedelta(days=1)
|
||||
page.go_live_at = timezone.now() + timedelta(days=1)
|
||||
self.root_page.add_child(instance=page)
|
||||
page.save_revision(approved_go_live_datetime = timezone.now() - timedelta(days=1))
|
||||
page.save_revision(approved_go_live_at = timezone.now() - timedelta(days=1))
|
||||
p = Page.objects.get(slug='hello-world')
|
||||
self.assertFalse(p.live)
|
||||
self.assertTrue(PageRevision.objects.filter(page=p).exclude(approved_go_live_datetime__isnull=True).exists())
|
||||
self.assertTrue(PageRevision.objects.filter(page=p).exclude(approved_go_live_at__isnull=True).exists())
|
||||
management.call_command('publish_scheduled_pages', )
|
||||
p = Page.objects.get(slug='hello-world')
|
||||
self.assertFalse(p.live)
|
||||
self.assertTrue(PageRevision.objects.filter(page=p).exclude(approved_go_live_datetime__isnull=True).exists())
|
||||
self.assertTrue(PageRevision.objects.filter(page=p).exclude(approved_go_live_at__isnull=True).exists())
|
||||
|
||||
def test_expired_page_will_be_unpublished(self):
|
||||
page = SimplePage()
|
||||
page.title = "Hello world!"
|
||||
page.slug = "hello-world"
|
||||
page.live = True
|
||||
page.expiry_datetime = timezone.now() - timedelta(days=1)
|
||||
page.expire_at = timezone.now() - timedelta(days=1)
|
||||
self.root_page.add_child(instance=page)
|
||||
p = Page.objects.get(slug='hello-world')
|
||||
self.assertTrue(p.live)
|
||||
|
|
@ -550,7 +550,7 @@ class TestPublishScheduledPages(TestCase):
|
|||
page.title = "Hello world!"
|
||||
page.slug = "hello-world"
|
||||
page.live = True
|
||||
page.expiry_datetime = timezone.now() + timedelta(days=1)
|
||||
page.expire_at = timezone.now() + timedelta(days=1)
|
||||
self.root_page.add_child(instance=page)
|
||||
p = Page.objects.get(slug='hello-world')
|
||||
self.assertTrue(p.live)
|
||||
|
|
@ -564,7 +564,7 @@ class TestPublishScheduledPages(TestCase):
|
|||
page.title = "Hello world!"
|
||||
page.slug = "hello-world"
|
||||
page.live = False
|
||||
page.expiry_datetime = timezone.now() - timedelta(days=1)
|
||||
page.expire_at = timezone.now() - timedelta(days=1)
|
||||
self.root_page.add_child(instance=page)
|
||||
page.save_revision(submitted_for_moderation = True)
|
||||
p = Page.objects.get(slug='hello-world')
|
||||
|
|
|
|||
|
|
@ -133,18 +133,18 @@ def create(request, content_type_app_name, content_type_model_name, parent_page_
|
|||
|
||||
is_publishing = bool(request.POST.get('action-publish')) and parent_page_perms.can_publish_subpage()
|
||||
is_submitting = bool(request.POST.get('action-submit'))
|
||||
go_live_datetime = form.cleaned_data.get('go_live_datetime')
|
||||
future_go_live = go_live_datetime and go_live_datetime > timezone.now()
|
||||
approved_go_live_datetime = None
|
||||
go_live_at = form.cleaned_data.get('go_live_at')
|
||||
future_go_live = go_live_at and go_live_at > timezone.now()
|
||||
approved_go_live_at = None
|
||||
|
||||
if is_publishing:
|
||||
page.has_unpublished_changes = False
|
||||
page.expired = False
|
||||
if future_go_live:
|
||||
page.live = False
|
||||
# Set approved_go_live_datetime only if is publishing
|
||||
# Set approved_go_live_at only if is publishing
|
||||
# and the future_go_live is actually in future
|
||||
approved_go_live_datetime = go_live_datetime
|
||||
approved_go_live_at = go_live_at
|
||||
else:
|
||||
page.live = True
|
||||
else:
|
||||
|
|
@ -153,11 +153,11 @@ def create(request, content_type_app_name, content_type_model_name, parent_page_
|
|||
|
||||
parent_page.add_child(instance=page) # assign tree parameters - will cause page to be saved
|
||||
|
||||
# Pass approved_go_live_datetime to save_revision
|
||||
# Pass approved_go_live_at to save_revision
|
||||
page.save_revision(
|
||||
user=request.user,
|
||||
submitted_for_moderation=is_submitting,
|
||||
approved_go_live_datetime = approved_go_live_datetime
|
||||
approved_go_live_at = approved_go_live_at
|
||||
)
|
||||
|
||||
if is_publishing:
|
||||
|
|
@ -222,24 +222,24 @@ def edit(request, page_id):
|
|||
if form.is_valid():
|
||||
is_publishing = bool(request.POST.get('action-publish')) and page_perms.can_publish()
|
||||
is_submitting = bool(request.POST.get('action-submit'))
|
||||
go_live_datetime = form.cleaned_data.get('go_live_datetime')
|
||||
future_go_live = go_live_datetime and go_live_datetime > timezone.now()
|
||||
approved_go_live_datetime = None
|
||||
go_live_at = form.cleaned_data.get('go_live_at')
|
||||
future_go_live = go_live_at and go_live_at > timezone.now()
|
||||
approved_go_live_at = None
|
||||
|
||||
if is_publishing:
|
||||
page.has_unpublished_changes = False
|
||||
page.expired = False
|
||||
if future_go_live:
|
||||
page.live = False
|
||||
# Set approved_go_live_datetime only if publishing
|
||||
approved_go_live_datetime = go_live_datetime
|
||||
# Set approved_go_live_at only if publishing
|
||||
approved_go_live_at = go_live_at
|
||||
else:
|
||||
page.live = True
|
||||
form.save()
|
||||
# Clear approved_go_live_datetime for older revisions
|
||||
# Clear approved_go_live_at for older revisions
|
||||
page.revisions.update(
|
||||
submitted_for_moderation=False,
|
||||
approved_go_live_datetime=None,
|
||||
approved_go_live_at=None,
|
||||
)
|
||||
else:
|
||||
# not publishing the page
|
||||
|
|
@ -255,7 +255,7 @@ def edit(request, page_id):
|
|||
page.save_revision(
|
||||
user=request.user,
|
||||
submitted_for_moderation=is_submitting,
|
||||
approved_go_live_datetime = approved_go_live_datetime
|
||||
approved_go_live_at = approved_go_live_at
|
||||
)
|
||||
|
||||
if is_publishing:
|
||||
|
|
@ -455,8 +455,8 @@ def unpublish(request, page_id):
|
|||
parent_id = page.get_parent().id
|
||||
page.live = False
|
||||
page.save()
|
||||
# Since page is unpublished clear the approved_go_live_datetime of all revisions
|
||||
page.revisions.update(approved_go_live_datetime=None)
|
||||
# Since page is unpublished clear the approved_go_live_at of all revisions
|
||||
page.revisions.update(approved_go_live_at=None)
|
||||
messages.success(request, _("Page '{0}' unpublished.").format(page.title))
|
||||
return redirect('wagtailadmin_explore', parent_id)
|
||||
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@ from wagtail.wagtailcore.models import Page, PageRevision
|
|||
|
||||
|
||||
def revision_date_expired(r):
|
||||
expiry_str = json.loads(r.content_json).get('expiry_datetime')
|
||||
expiry_str = json.loads(r.content_json).get('expire_at')
|
||||
if not expiry_str:
|
||||
return False
|
||||
expiry_datetime = dateparse.parse_datetime(expiry_str)
|
||||
if expiry_datetime < timezone.now():
|
||||
expire_at = dateparse.parse_datetime(expiry_str)
|
||||
if expire_at < timezone.now():
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
|
@ -37,7 +37,7 @@ class Command(BaseCommand):
|
|||
# 1. get all expired pages with live = True
|
||||
expired_pages = Page.objects.filter(
|
||||
live=True,
|
||||
expiry_datetime__lt=timezone.now()
|
||||
expire_at__lt=timezone.now()
|
||||
)
|
||||
if dryrun:
|
||||
if expired_pages:
|
||||
|
|
@ -46,7 +46,7 @@ class Command(BaseCommand):
|
|||
print "---------------\t\t----\t\t----"
|
||||
for ep in expired_pages:
|
||||
print "{0}\t{1}\t{2}".format(
|
||||
ep.expiry_datetime.strftime("%Y-%m-%d %H:%M"),
|
||||
ep.expire_at.strftime("%Y-%m-%d %H:%M"),
|
||||
ep.slug,
|
||||
ep.title
|
||||
)
|
||||
|
|
@ -71,7 +71,7 @@ class Command(BaseCommand):
|
|||
rev_data = json.loads(er.content_json)
|
||||
print "{0}\t{1}\t{2}".format(
|
||||
dateparse.parse_datetime(
|
||||
rev_data.get('expiry_datetime')
|
||||
rev_data.get('expire_at')
|
||||
).strftime("%Y-%m-%d %H:%M"),
|
||||
rev_data.get('slug'),
|
||||
rev_data.get('title')
|
||||
|
|
@ -85,7 +85,7 @@ class Command(BaseCommand):
|
|||
|
||||
# 3. get all revisions that need to be published
|
||||
revs_for_publishing = PageRevision.objects.filter(
|
||||
approved_go_live_datetime__lt=timezone.now()
|
||||
approved_go_live_at__lt=timezone.now()
|
||||
)
|
||||
if dryrun:
|
||||
print "---------------------------------"
|
||||
|
|
@ -96,7 +96,7 @@ class Command(BaseCommand):
|
|||
for rp in revs_for_publishing:
|
||||
rev_data = json.loads(rp.content_json)
|
||||
print "{0}\t\t{1}\t{2}".format(
|
||||
rp.approved_go_live_datetime.strftime("%Y-%m-%d %H:%M"),
|
||||
rp.approved_go_live_at.strftime("%Y-%m-%d %H:%M"),
|
||||
rev_data.get('slug'),
|
||||
rev_data.get('title')
|
||||
)
|
||||
|
|
|
|||
|
|
@ -8,18 +8,18 @@ from django.db import models
|
|||
class Migration(SchemaMigration):
|
||||
|
||||
def forwards(self, orm):
|
||||
# Adding field 'PageRevision.approved_go_live_datetime'
|
||||
db.add_column(u'wagtailcore_pagerevision', 'approved_go_live_datetime',
|
||||
# Adding field 'PageRevision.approved_go_live_at'
|
||||
db.add_column(u'wagtailcore_pagerevision', 'approved_go_live_at',
|
||||
self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True),
|
||||
keep_default=False)
|
||||
|
||||
# Adding field 'Page.go_live_datetime'
|
||||
db.add_column(u'wagtailcore_page', 'go_live_datetime',
|
||||
# Adding field 'Page.go_live_at'
|
||||
db.add_column(u'wagtailcore_page', 'go_live_at',
|
||||
self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True),
|
||||
keep_default=False)
|
||||
|
||||
# Adding field 'Page.expiry_datetime'
|
||||
db.add_column(u'wagtailcore_page', 'expiry_datetime',
|
||||
# Adding field 'Page.expire_at'
|
||||
db.add_column(u'wagtailcore_page', 'expire_at',
|
||||
self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True),
|
||||
keep_default=False)
|
||||
|
||||
|
|
@ -30,14 +30,14 @@ class Migration(SchemaMigration):
|
|||
|
||||
|
||||
def backwards(self, orm):
|
||||
# Deleting field 'PageRevision.approved_go_live_datetime'
|
||||
db.delete_column(u'wagtailcore_pagerevision', 'approved_go_live_datetime')
|
||||
# Deleting field 'PageRevision.approved_go_live_at'
|
||||
db.delete_column(u'wagtailcore_pagerevision', 'approved_go_live_at')
|
||||
|
||||
# Deleting field 'Page.go_live_datetime'
|
||||
db.delete_column(u'wagtailcore_page', 'go_live_datetime')
|
||||
# Deleting field 'Page.go_live_at'
|
||||
db.delete_column(u'wagtailcore_page', 'go_live_at')
|
||||
|
||||
# Deleting field 'Page.expiry_datetime'
|
||||
db.delete_column(u'wagtailcore_page', 'expiry_datetime')
|
||||
# Deleting field 'Page.expire_at'
|
||||
db.delete_column(u'wagtailcore_page', 'expire_at')
|
||||
|
||||
# Deleting field 'Page.expired'
|
||||
db.delete_column(u'wagtailcore_page', 'expired')
|
||||
|
|
@ -92,8 +92,8 @@ class Migration(SchemaMigration):
|
|||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'pages'", 'to': u"orm['contenttypes.ContentType']"}),
|
||||
'depth': ('django.db.models.fields.PositiveIntegerField', [], {}),
|
||||
'expired': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'expiry_datetime': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
|
||||
'go_live_datetime': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
|
||||
'expire_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
|
||||
'go_live_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
|
||||
'has_unpublished_changes': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'live': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
|
|
@ -109,7 +109,7 @@ class Migration(SchemaMigration):
|
|||
},
|
||||
u'wagtailcore.pagerevision': {
|
||||
'Meta': {'object_name': 'PageRevision'},
|
||||
'approved_go_live_datetime': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
|
||||
'approved_go_live_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
|
||||
'content_json': ('django.db.models.fields.TextField', [], {}),
|
||||
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
|
|
|
|||
|
|
@ -235,8 +235,8 @@ class Page(MP_Node, ClusterableModel, Indexed):
|
|||
show_in_menus = models.BooleanField(default=False, help_text=_("Whether a link to this page will appear in automatically generated menus"))
|
||||
search_description = models.TextField(blank=True)
|
||||
|
||||
go_live_datetime = models.DateTimeField(verbose_name=_("Go live date/time"), help_text=_("Please add a date-time in the form YYYY-MM-DD hh:mm."), blank=True, null=True)
|
||||
expiry_datetime = models.DateTimeField(verbose_name=_("Expiry date/time"), help_text=_("Please add a date-time in the form YYYY-MM-DD hh:mm."), blank=True, null=True)
|
||||
go_live_at = models.DateTimeField(verbose_name=_("Go live date/time"), help_text=_("Please add a date-time in the form YYYY-MM-DD hh:mm."), blank=True, null=True)
|
||||
expire_at = models.DateTimeField(verbose_name=_("Expiry date/time"), help_text=_("Please add a date-time in the form YYYY-MM-DD hh:mm."), blank=True, null=True)
|
||||
expired = models.BooleanField(default=False, editable=False)
|
||||
|
||||
indexed_fields = {
|
||||
|
|
@ -382,12 +382,12 @@ class Page(MP_Node, ClusterableModel, Indexed):
|
|||
else:
|
||||
raise Http404
|
||||
|
||||
def save_revision(self, user=None, submitted_for_moderation=False, approved_go_live_datetime=None):
|
||||
def save_revision(self, user=None, submitted_for_moderation=False, approved_go_live_at=None):
|
||||
self.revisions.create(
|
||||
content_json=self.to_json(),
|
||||
user=user,
|
||||
submitted_for_moderation=submitted_for_moderation,
|
||||
approved_go_live_datetime=approved_go_live_datetime,
|
||||
approved_go_live_at=approved_go_live_at,
|
||||
)
|
||||
|
||||
def get_latest_revision(self):
|
||||
|
|
@ -472,11 +472,11 @@ class Page(MP_Node, ClusterableModel, Indexed):
|
|||
def clean(self):
|
||||
super(Page, self).clean()
|
||||
|
||||
if self.go_live_datetime and self.expiry_datetime:
|
||||
if self.go_live_datetime > self.expiry_datetime:
|
||||
if self.go_live_at and self.expire_at:
|
||||
if self.go_live_at > self.expire_at:
|
||||
raise ValidationError(ugettext('Go live date/time should be before expiry datetime.'))
|
||||
|
||||
if self.expiry_datetime and self.expiry_datetime < timezone.now():
|
||||
if self.expire_at and self.expire_at < timezone.now():
|
||||
raise ValidationError(ugettext('Expiry date/time should be in the future'))
|
||||
|
||||
@classmethod
|
||||
|
|
@ -567,7 +567,7 @@ class Page(MP_Node, ClusterableModel, Indexed):
|
|||
|
||||
@property
|
||||
def approved_schedule(self):
|
||||
return self.revisions.exclude(approved_go_live_datetime__isnull=True).exists()
|
||||
return self.revisions.exclude(approved_go_live_at__isnull=True).exists()
|
||||
|
||||
def has_unpublished_subtree(self):
|
||||
"""
|
||||
|
|
@ -742,7 +742,7 @@ class PageRevision(models.Model):
|
|||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
user = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, blank=True)
|
||||
content_json = models.TextField()
|
||||
approved_go_live_datetime = models.DateTimeField(null=True, blank=True)
|
||||
approved_go_live_at = models.DateTimeField(null=True, blank=True)
|
||||
|
||||
objects = models.Manager()
|
||||
submitted_revisions = SubmittedRevisionsManager()
|
||||
|
|
@ -776,18 +776,18 @@ class PageRevision(models.Model):
|
|||
|
||||
def publish(self):
|
||||
page = self.as_page_object()
|
||||
if page.go_live_datetime and page.go_live_datetime > timezone.now():
|
||||
if page.go_live_at and page.go_live_at > timezone.now():
|
||||
# if we have a go_live in the future don't make the page live
|
||||
page.live = False
|
||||
# Instead set the approved_go_live_datetime of this revision
|
||||
self.approved_go_live_datetime = page.go_live_datetime
|
||||
# Instead set the approved_go_live_at of this revision
|
||||
self.approved_go_live_at = page.go_live_at
|
||||
self.save()
|
||||
# And clear the the approved_go_live_datetime of any other revisions
|
||||
page.revisions.exclude(id=self.id).update(approved_go_live_datetime=None)
|
||||
# And clear the the approved_go_live_at of any other revisions
|
||||
page.revisions.exclude(id=self.id).update(approved_go_live_at=None)
|
||||
else:
|
||||
page.live = True
|
||||
# If page goes live clear the approved_go_live_datetime of all revisions
|
||||
page.revisions.update(approved_go_live_datetime=None)
|
||||
# If page goes live clear the approved_go_live_at of all revisions
|
||||
page.revisions.update(approved_go_live_at=None)
|
||||
page.expired = False # When a page is published it can't be expired
|
||||
page.save()
|
||||
self.submitted_for_moderation = False
|
||||
|
|
|
|||
Loading…
Reference in a new issue