kopia lustrzana https://github.com/wagtail/wagtail
Add can_choose_root flag to page chooser views
rodzic
8ca01a8428
commit
22d1dd7c7e
|
@ -27,6 +27,22 @@ class TestChooserBrowse(TestCase, WagtailTestUtils):
|
|||
self.assertTemplateUsed(response, 'wagtailadmin/chooser/browse.html')
|
||||
|
||||
|
||||
class TestCanChooseRootFlag(TestCase, WagtailTestUtils):
|
||||
def setUp(self):
|
||||
self.login()
|
||||
|
||||
def get(self, params={}):
|
||||
return self.client.get(reverse('wagtailadmin_choose_page'), params)
|
||||
|
||||
def test_cannot_choose_root_by_default(self):
|
||||
response = self.get()
|
||||
self.assertNotContains(response, '/admin/pages/1/edit/')
|
||||
|
||||
def test_can_choose_root(self):
|
||||
response = self.get({'can_choose_root': 'true'})
|
||||
self.assertContains(response, '/admin/pages/1/edit/')
|
||||
|
||||
|
||||
class TestChooserBrowseChild(TestCase, WagtailTestUtils):
|
||||
def setUp(self):
|
||||
self.root_page = Page.objects.get(id=2)
|
||||
|
|
|
@ -69,8 +69,10 @@ def browse(request, parent_page_id=None):
|
|||
else:
|
||||
desired_classes = (Page, )
|
||||
|
||||
can_choose_root = request.GET.get('can_choose_root', False)
|
||||
|
||||
# Parent page can be chosen if it is a instance of desired_classes
|
||||
parent_page.can_choose = issubclass(parent_page.specific_class or Page, desired_classes)
|
||||
parent_page.can_choose = issubclass(parent_page.specific_class or Page, desired_classes) and (can_choose_root or not parent_page.is_root())
|
||||
|
||||
# Pagination
|
||||
# We apply pagination first so we don't need to walk the entire list
|
||||
|
|
Ładowanie…
Reference in New Issue