diff --git a/wagtail/admin/action_menu.py b/wagtail/admin/action_menu.py index 24c6da652d..dcec49aae6 100644 --- a/wagtail/admin/action_menu.py +++ b/wagtail/admin/action_menu.py @@ -159,12 +159,12 @@ def _get_base_page_action_menu_items(): if BASE_PAGE_ACTION_MENU_ITEMS is None: BASE_PAGE_ACTION_MENU_ITEMS = [ + PageLockedMenuItem(order=-10000), + SaveDraftMenuItem(order=0), UnpublishMenuItem(order=10), DeleteMenuItem(order=20), PublishMenuItem(order=30), SubmitForModerationMenuItem(order=40), - SaveDraftMenuItem(order=50), - PageLockedMenuItem(order=10000), ] for hook in hooks.get_hooks('register_page_action_menu_item'): BASE_PAGE_ACTION_MENU_ITEMS.append(hook()) @@ -192,7 +192,7 @@ class PageActionMenu: hook(self.menu_items, self.request, self.context) try: - self.default_item = self.menu_items.pop() + self.default_item = self.menu_items.pop(0) except IndexError: self.default_item = None diff --git a/wagtail/admin/tests/pages/test_edit_page.py b/wagtail/admin/tests/pages/test_edit_page.py index b29d153d6b..1ca08ab8af 100644 --- a/wagtail/admin/tests/pages/test_edit_page.py +++ b/wagtail/admin/tests/pages/test_edit_page.py @@ -12,9 +12,6 @@ from django.test import TestCase, modify_settings from django.urls import reverse from django.utils import timezone -from wagtail.admin.action_menu import ( - DeleteMenuItem, PublishMenuItem, SaveDraftMenuItem, SubmitForModerationMenuItem, - UnpublishMenuItem) from wagtail.admin.tests.pages.timestamps import submittable_timestamp from wagtail.core.models import Page, PageRevision, Site from wagtail.core.signals import page_published @@ -857,74 +854,35 @@ class TestPageEdit(TestCase, WagtailTestUtils): # page should be edited self.assertEqual(Page.objects.get(id=self.child_page.id).title, "I've been edited!") - def test_construct_page_action_menu_hook(self): - menu = [ - UnpublishMenuItem(order=10), - DeleteMenuItem(order=20), - SubmitForModerationMenuItem(order=30), - SaveDraftMenuItem(order=40), - PublishMenuItem(order=50), - ] - - default_item = '' - menu_items_html = '''
'''.format(id=self.single_event_page.id) - + def test_override_default_action_menu_item(self): def hook_func(menu_items, request, context): - menu_items[:] = menu + for (index, item) in enumerate(menu_items): + if item.name == 'action-publish': + # move to top of list + menu_items.pop(index) + menu_items.insert(0, item) + break with self.register_hook('construct_page_action_menu', hook_func): - response = self.client.get(reverse('wagtailadmin_pages:edit', - args=(self.single_event_page.id, ))) + response = self.client.get(reverse('wagtailadmin_pages:edit', args=(self.single_event_page.id, ))) - self.assertContains(response, default_item, html=True) - self.assertContains(response, menu_items_html, html=True) + publish_button = ''' + + ''' + save_button = ''' + + ''' - for item in menu: - if item.template: - self.assertTemplateUsed(response, item.template) + # save button should be in a