From 49421e5a41017095ee82544f287a9b90c79332c5 Mon Sep 17 00:00:00 2001
From: Gagaro <gagaro42@gmail.com>
Date: Fri, 7 Oct 2016 12:19:55 +0200
Subject: [PATCH] Fix: Use specific page model for the parent page in the
 explore index

---
 CHANGELOG.txt                                  | 1 +
 docs/releases/1.8.rst                          | 1 +
 wagtail/wagtailadmin/tests/test_pages_views.py | 6 ++++++
 wagtail/wagtailadmin/views/pages.py            | 4 ++--
 4 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG.txt b/CHANGELOG.txt
index 8aff50402e..2b063a4d12 100644
--- a/CHANGELOG.txt
+++ b/CHANGELOG.txt
@@ -8,6 +8,7 @@ Changelog
  * Added `get_landing_page_template` getter method to `AbstractForm` (Gagaro)
  * Added `Page.get_admin_display_title` method to override how the title is displayed in the admin (Henk-Jan van Hasselaar)
  * Fix: `AbstractForm` now respects custom `get_template` methods on the page model (Gagaro)
+ * Fix: Use specific page model for the parent page in the explore index (Gagaro)
 
 
 1.7 (xx.xx.xxxx) - IN DEVELOPMENT
diff --git a/docs/releases/1.8.rst b/docs/releases/1.8.rst
index f38bbe79be..3f68f5bb4d 100644
--- a/docs/releases/1.8.rst
+++ b/docs/releases/1.8.rst
@@ -23,6 +23,7 @@ Bug fixes
 ~~~~~~~~~
 
  * ``AbstractForm`` now respects custom ``get_template`` methods on the page model (Gagaro)
+ * Use specific page model for the parent page in the explore index (Gagaro)
 
 
 Upgrade considerations
diff --git a/wagtail/wagtailadmin/tests/test_pages_views.py b/wagtail/wagtailadmin/tests/test_pages_views.py
index 22a201dd28..823169cc73 100644
--- a/wagtail/wagtailadmin/tests/test_pages_views.py
+++ b/wagtail/wagtailadmin/tests/test_pages_views.py
@@ -237,6 +237,12 @@ class TestPageExplorer(TestCase, WagtailTestUtils):
 
         self.assertContains(response, '/new-event/pointless-suffix/')
 
+    def test_parent_page_is_specific(self):
+        response = self.client.get(reverse('wagtailadmin_explore', args=(self.child_page.id, )))
+        self.assertEqual(response.status_code, 200)
+
+        self.assertIsInstance(response.context['parent_page'], SimplePage)
+
 
 class TestPageExplorerSignposting(TestCase, WagtailTestUtils):
     fixtures = ['test.json']
diff --git a/wagtail/wagtailadmin/views/pages.py b/wagtail/wagtailadmin/views/pages.py
index ea9cef4f68..9a4a65b5af 100644
--- a/wagtail/wagtailadmin/views/pages.py
+++ b/wagtail/wagtailadmin/views/pages.py
@@ -38,9 +38,9 @@ def explorer_nav(request):
 
 def index(request, parent_page_id=None):
     if parent_page_id:
-        parent_page = get_object_or_404(Page, id=parent_page_id)
+        parent_page = get_object_or_404(Page, id=parent_page_id).specific
     else:
-        parent_page = Page.get_first_root_node()
+        parent_page = Page.get_first_root_node().specific
 
     pages = parent_page.get_children().prefetch_related('content_type')