def test_disable_preview_on_revisions_list(self): simple_page = SimplePage(title="simple page", content="hello") self.root_page.add_child(instance=simple_page) simple_page.save_revision(log_action=True) # check preview shows up by default response = self.client.get( reverse("wagtailadmin_pages:history", args=(simple_page.id,)) ) preview_url = reverse( "wagtailadmin_pages:revisions_view", args=(simple_page.id, simple_page.get_latest_revision().id), ) self.assertContains(response, "Preview") self.assertContains(response, preview_url) stream_page = StreamPage(title="stream page", body=[("text", "hello")]) self.root_page.add_child(instance=stream_page) latest_revision = stream_page.save_revision(log_action=True) # StreamPage has preview_modes = [] response = self.client.get( reverse("wagtailadmin_pages:history", args=(stream_page.id,)) ) preview_url = reverse( "wagtailadmin_pages:revisions_view", args=(stream_page.id, latest_revision.id), ) self.assertNotContains(response, "Preview") self.assertNotContains(response, preview_url)
def disable_preview_in_moderation_list(self): stream_page = StreamPage(title="stream page", body=[("text", "hello")]) self.root_page.add_child(instance=stream_page) latest_revision = stream_page.save_revision( user=self.user, submitted_for_moderation=True) response = self.client.get(reverse("wagtailadmin_home")) preview_url = reverse("wagtailadmin_pages:preview_for_moderation", args=(latest_revision.id, )) self.assertNotContains(response, '<li class="preview">') self.assertNotContains(response, 'data-action="%s"' % preview_url)
def _create_streampage(self): stream_page = StreamPage( title="stream page", slug="stream-page", body='[{"type": "text", "value": "foo"}]', ) self.root_page.add_child(instance=stream_page)
def test_disable_preview_on_edit(self): simple_page = SimplePage(title="simple page", content="hello") self.root_page.add_child(instance=simple_page) # preview button is available by default response = self.client.get( reverse("wagtailadmin_pages:edit", args=(simple_page.id,)) ) self.assertEqual(response.status_code, 200) preview_url = reverse( "wagtailadmin_pages:preview_on_edit", args=(simple_page.id,) ) self.assertContains(response, '<li class="preview">') self.assertContains(response, 'data-action="%s"' % preview_url) stream_page = StreamPage(title="stream page", body=[("text", "hello")]) self.root_page.add_child(instance=stream_page) # StreamPage has preview_modes = [] response = self.client.get( reverse("wagtailadmin_pages:edit", args=(stream_page.id,)) ) self.assertEqual(response.status_code, 200) preview_url = reverse( "wagtailadmin_pages:preview_on_edit", args=(stream_page.id,) ) self.assertNotContains(response, '<li class="preview">') self.assertNotContains(response, 'data-action="%s"' % preview_url)
def test_disable_preview_on_edit(self): stream_page = StreamPage(title="stream page", body=[("text", "hello")]) self.root_page.add_child(instance=stream_page) # StreamPage has preview_modes = [] response = self.client.get( reverse("wagtailadmin_pages:edit", args=(stream_page.id, ))) self.assertEqual(response.status_code, 200) preview_url = reverse("wagtailadmin_pages:preview_on_edit", args=(stream_page.id, )) self.assertNotContains(response, 'data-side-panel-toggle="preview"') self.assertNotContains(response, 'data-side-panel="preview"') self.assertNotContains(response, 'data-action="%s"' % preview_url)
def setUp(self): self.root_page = Page.objects.get(id=1) # Add a site so the URLs render correctly Site.objects.create(is_default_site=True, root_page=self.root_page) # Create a large piece of body text body = ("[" + ",".join(['{"type": "text", "value": "%s"}' % ("foo" * 2000)] * 100) + "]") # Create 50 simple pages with long content fields for i in range(50): self.root_page.add_child(instance=StreamPage( title="Page {}".format(i + 1), slug=str(i + 1), body=body, )) self.login()
def test_deferred_specific_query(self): # Tests the "defer" keyword argument, which defers all specific fields root = Page.objects.get(url_path="/home/") stream_page = StreamPage( title="stream page", slug="stream-page", body='[{"type": "text", "value": "foo"}]', ) root.add_child(instance=stream_page) with self.assertNumQueries(0): # The query should be lazy. qs = root.get_descendants().specific(defer=True) with self.assertNumQueries(1): # This did use 5 queries (one for each specific class), # But now only performs a single query pages = list(qs) self.assertIsInstance(pages, list) self.assertEqual(len(pages), 8) for page in pages: # An instance of the specific page type should be returned, # not wagtailcore.Page. content_type = page.content_type model = content_type.model_class() self.assertIsInstance(page, model) # The page should already be the specific type, so this should not # need another database query. with self.assertNumQueries(0): self.assertIs(page, page.specific) # Unlike before, the content fields should be now deferred. This means # that accessing them will generate a new query. with self.assertNumQueries(2): # <EventPage: Christmas> pages[1].body # <StreamPage: stream page> pages[-1].body
def setUp(self): # Find root page self.root_page = Page.objects.get(id=2) # Add child page self.child_page = SimplePage( title="Hello world!", slug="hello-world", content="hello", ) self.root_page.add_child(instance=self.child_page) # Add stream page (which has empty preview_modes, and so doesn't allow viewing draft) self.stream_page = StreamPage(title="stream page", body=[("text", "hello")]) self.root_page.add_child(instance=self.stream_page) # create user with admin access (but not draft_view access) user = self.create_user(username="******", password="******") user.user_permissions.add( Permission.objects.get(content_type__app_label="wagtailadmin", codename="access_admin"))