kopia lustrzana https://github.com/wagtail/wagtail
Hide preview button when preview_modes is empty
rodzic
92ba2c4832
commit
19f50c72ce
|
@ -15,6 +15,7 @@ Changelog
|
|||
* Tag field autocompletion now handles custom tag models (Matt Westcott)
|
||||
* `wagtail_serve` URL route can now be omitted for headless sites (Storm Heg)
|
||||
* Allow free tagging to be disabled on custom tag models (Matt Westcott)
|
||||
* Allow disabling page preview by setting `preview_modes` to an empty list (Casper Timmers)
|
||||
* Fix: Added ARIA alert role to live search forms in the admin (Casper Timmers)
|
||||
* Fix: Reorder login form elements to match expected tab order (Kjartan Sverrisson)
|
||||
* Fix: Re-add 'Close Explorer' button on mobile viewports (Sævar Öfjörð Magnússon)
|
||||
|
|
|
@ -24,6 +24,7 @@ Other features
|
|||
* Tag field autocompletion now handles custom tag models (Matt Westcott)
|
||||
* ``wagtail_serve`` URL route can now be omitted for headless sites (Storm Heg)
|
||||
* Allow free tagging to be disabled on custom tag models (Matt Westcott)
|
||||
* Allow disabling page preview by setting ``preview_modes`` to an empty list (Casper Timmers)
|
||||
|
||||
|
||||
Bug fixes
|
||||
|
|
|
@ -32,24 +32,26 @@
|
|||
</div>
|
||||
</li>
|
||||
|
||||
<li class="preview">
|
||||
{% trans 'Preview' as preview_label %}
|
||||
{% if preview_modes|length > 1 %}
|
||||
<div class="dropdown dropup dropdown-button match-width">
|
||||
{% if preview_modes %}
|
||||
<li class="preview">
|
||||
{% trans 'Preview' as preview_label %}
|
||||
{% if preview_modes|length > 1 %}
|
||||
<div class="dropdown dropup dropdown-button match-width">
|
||||
{% include "wagtailadmin/pages/_preview_button_on_create.html" with label=preview_label icon=1 %}
|
||||
<div class="dropdown-toggle icon icon-arrow-up"></div>
|
||||
<ul>
|
||||
{% for mode_name, mode_display_name in preview_modes %}
|
||||
<li>
|
||||
{% include "wagtailadmin/pages/_preview_button_on_create.html" with mode=mode_name label=mode_display_name %}
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
{% else %}
|
||||
{% include "wagtailadmin/pages/_preview_button_on_create.html" with label=preview_label icon=1 %}
|
||||
<div class="dropdown-toggle icon icon-arrow-up"></div>
|
||||
<ul>
|
||||
{% for mode_name, mode_display_name in preview_modes %}
|
||||
<li>
|
||||
{% include "wagtailadmin/pages/_preview_button_on_create.html" with mode=mode_name label=mode_display_name %}
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
{% else %}
|
||||
{% include "wagtailadmin/pages/_preview_button_on_create.html" with label=preview_label icon=1 %}
|
||||
{% endif %}
|
||||
</li>
|
||||
{% endif %}
|
||||
</li>
|
||||
{% endif %}
|
||||
{% block extra_footer_actions %}
|
||||
{% endblock %}
|
||||
</ul>
|
||||
|
|
|
@ -43,24 +43,26 @@
|
|||
</div>
|
||||
</li>
|
||||
|
||||
<li class="preview">
|
||||
{% trans 'Preview' as preview_label %}
|
||||
{% if preview_modes|length > 1 %}
|
||||
<div class="dropdown dropup dropdown-button match-width">
|
||||
{% if preview_modes %}
|
||||
<li class="preview">
|
||||
{% trans 'Preview' as preview_label %}
|
||||
{% if preview_modes|length > 1 %}
|
||||
<div class="dropdown dropup dropdown-button match-width">
|
||||
{% include "wagtailadmin/pages/_preview_button_on_edit.html" with label=preview_label icon=1 %}
|
||||
<div class="dropdown-toggle icon icon-arrow-up"></div>
|
||||
<ul>
|
||||
{% for mode_name, mode_display_name in preview_modes %}
|
||||
<li>
|
||||
{% include "wagtailadmin/pages/_preview_button_on_edit.html" with mode=mode_name label=mode_display_name %}
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
{% else %}
|
||||
{% include "wagtailadmin/pages/_preview_button_on_edit.html" with label=preview_label icon=1 %}
|
||||
<div class="dropdown-toggle icon icon-arrow-up"></div>
|
||||
<ul>
|
||||
{% for mode_name, mode_display_name in preview_modes %}
|
||||
<li>
|
||||
{% include "wagtailadmin/pages/_preview_button_on_edit.html" with mode=mode_name label=mode_display_name %}
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
{% else %}
|
||||
{% include "wagtailadmin/pages/_preview_button_on_edit.html" with label=preview_label icon=1 %}
|
||||
{% endif %}
|
||||
</li>
|
||||
{% endif %}
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
<li class="meta">
|
||||
<p class="modified">
|
||||
|
|
|
@ -7,7 +7,7 @@ from freezegun import freeze_time
|
|||
|
||||
from wagtail.admin.views.pages import PreviewOnEdit
|
||||
from wagtail.core.models import Page
|
||||
from wagtail.tests.testapp.models import EventCategory
|
||||
from wagtail.tests.testapp.models import EventCategory, SimplePage, StreamPage
|
||||
from wagtail.tests.utils import WagtailTestUtils
|
||||
|
||||
|
||||
|
@ -161,3 +161,55 @@ class TestPreview(TestCase, WagtailTestUtils):
|
|||
self.assertEqual(response.status_code, 200)
|
||||
response = self.client.get(preview_url)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
|
||||
class TestDisablePreviewButton(TestCase, WagtailTestUtils):
|
||||
"""
|
||||
Test that preview button can be disabled by setting preview_modes to an empty list
|
||||
"""
|
||||
def setUp(self):
|
||||
# Find root page
|
||||
self.root_page = Page.objects.get(id=2)
|
||||
|
||||
# Login
|
||||
self.user = self.login()
|
||||
|
||||
def test_disable_preview_on_create(self):
|
||||
# preview button is available by default
|
||||
response = self.client.get(reverse('wagtailadmin_pages:add', args=('tests', 'simplepage', self.root_page.id)))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
preview_url = reverse('wagtailadmin_pages:preview_on_add', args=('tests', 'simplepage', self.root_page.id))
|
||||
self.assertContains(response, '<li class="preview">')
|
||||
self.assertContains(response, 'data-action="%s"' % preview_url)
|
||||
|
||||
# StreamPage has preview_modes = []
|
||||
response = self.client.get(reverse('wagtailadmin_pages:add', args=('tests', 'streampage', self.root_page.id)))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
preview_url = reverse('wagtailadmin_pages:preview_on_add', args=('tests', 'streampage', self.root_page.id))
|
||||
self.assertNotContains(response, '<li class="preview">')
|
||||
self.assertNotContains(response, 'data-action="%s"' % preview_url)
|
||||
|
||||
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)
|
||||
|
|
|
@ -981,6 +981,8 @@ class StreamPage(Page):
|
|||
StreamFieldPanel('body'),
|
||||
]
|
||||
|
||||
preview_modes = []
|
||||
|
||||
|
||||
class DefaultStreamPage(Page):
|
||||
body = StreamField([
|
||||
|
|
Ładowanie…
Reference in New Issue