From 98c30a33e35eefac21c8d6d124fa7ce9f44cad79 Mon Sep 17 00:00:00 2001 From: Matt Westcott Date: Thu, 6 Jul 2017 18:45:12 +0100 Subject: [PATCH] Ensure draft_title is populated when creating pages programmatically --- wagtail/wagtailcore/models.py | 3 +++ wagtail/wagtailcore/tests/test_page_model.py | 13 +++++++++++++ 2 files changed, 16 insertions(+) diff --git a/wagtail/wagtailcore/models.py b/wagtail/wagtailcore/models.py index c746957098..d8573be5d5 100644 --- a/wagtail/wagtailcore/models.py +++ b/wagtail/wagtailcore/models.py @@ -446,6 +446,9 @@ class Page(six.with_metaclass(PageBase, AbstractPage, index.Indexed, Clusterable if base_slug: self.slug = self._get_autogenerated_slug(base_slug) + if not self.draft_title: + self.draft_title = self.title + super(Page, self).full_clean(*args, **kwargs) def clean(self): diff --git a/wagtail/wagtailcore/tests/test_page_model.py b/wagtail/wagtailcore/tests/test_page_model.py index 19c4dc1c76..18642e9c8f 100644 --- a/wagtail/wagtailcore/tests/test_page_model.py +++ b/wagtail/wagtailcore/tests/test_page_model.py @@ -90,6 +90,19 @@ class TestValidation(TestCase): homepage = Page.objects.get(url_path='/home/') self.assertEqual(homepage.draft_title, homepage.get_admin_display_title()) + def test_draft_title_is_autopopulated(self): + homepage = Page.objects.get(url_path='/home/') + + hello_page = SimplePage(title="Hello world", content="hello") + homepage.add_child(instance=hello_page) + retrieved_page = Page.objects.get(id=hello_page.id) + self.assertEqual(retrieved_page.draft_title, "Hello world") + + hello_page = SimplePage(title="Hello world", draft_title="Hello world edited", content="hello") + homepage.add_child(instance=hello_page) + retrieved_page = Page.objects.get(id=hello_page.id) + self.assertEqual(retrieved_page.draft_title, "Hello world edited") + @override_settings(ALLOWED_HOSTS=['localhost', 'events.example.com', 'about.example.com', 'unknown.site.com']) class TestSiteRouting(TestCase):