kopia lustrzana https://github.com/wagtail/wagtail
Explicitly specify `MenuItem.name` for Snippets, Reports, and Settings menu items (#10270)
rodzic
27459d61ce
commit
d1a668a3b1
|
@ -28,6 +28,7 @@ Changelog
|
|||
* Re-label "StreamField blocks" option in block picker to "Blocks" (Thibaud Colas)
|
||||
* Re-implement styleguide icons list as an auto-generated sequence of tables (Thibaud Colas)
|
||||
* Switch styleguide navigation to use panel components and minimap (Thibaud Colas)
|
||||
* Explicitly specify `MenuItem.name` for Snippets, Reports, and Settings menu items (Sage Abdullah)
|
||||
* Fix: Ensure `label_format` on StructBlock gracefully handles missing variables (Aadi jindal)
|
||||
* Fix: Adopt a no-JavaScript and more accessible solution for the 'Reset to default' switch to Gravatar when editing user profile (Loveth Omokaro)
|
||||
* Fix: Ensure `Site.get_site_root_paths` works on cache backends that do not preserve Python objects (Jaap Roes)
|
||||
|
|
|
@ -43,6 +43,7 @@ Support for adding custom validation logic to StreamField blocks has been formal
|
|||
* Re-label "StreamField blocks" option in block picker to "Blocks" (Thibaud Colas)
|
||||
* Re-implement styleguide icons list as an auto-generated sequence of tables (Thibaud Colas)
|
||||
* Switch styleguide navigation to use panel components and minimap (Thibaud Colas)
|
||||
* Explicitly specify `MenuItem.name` for Snippets, Reports, and Settings menu items (Sage Abdullah)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
from django.test import RequestFactory, TestCase
|
||||
from django.urls import reverse
|
||||
from django.utils import translation
|
||||
|
||||
from wagtail import hooks
|
||||
from wagtail.admin.menu import (
|
||||
|
@ -9,6 +10,7 @@ from wagtail.admin.menu import (
|
|||
Menu,
|
||||
MenuItem,
|
||||
SubmenuMenuItem,
|
||||
admin_menu,
|
||||
)
|
||||
from wagtail.admin.ui import sidebar
|
||||
from wagtail.test.utils import WagtailTestUtils
|
||||
|
@ -315,3 +317,33 @@ class TestMenuRendering(WagtailTestUtils, TestCase):
|
|||
sidebar.LinkMenuItem("pages", "Pages", "/pages/"),
|
||||
],
|
||||
)
|
||||
|
||||
def test_menu_items_have_names(self):
|
||||
# Delete the registered_menu_items cache
|
||||
try:
|
||||
del admin_menu.registered_menu_items
|
||||
# The cache may not be created yet if the test is run in isolation
|
||||
except AttributeError:
|
||||
pass
|
||||
|
||||
# Generate the menu items using a different language
|
||||
with translation.override("fr"):
|
||||
names = {item.name for item in admin_menu.registered_menu_items}
|
||||
|
||||
# Default menu items
|
||||
expected = {
|
||||
"explorer",
|
||||
"images",
|
||||
"documents",
|
||||
"snippets",
|
||||
"forms",
|
||||
"reports",
|
||||
"settings",
|
||||
"help",
|
||||
}
|
||||
|
||||
# If some of the above items do not have a name, they will be
|
||||
# automatically generated from the label, which is translatable.
|
||||
# We want the name to be consistent across languages, so this test will
|
||||
# fail if the label is translated.
|
||||
self.assertFalse(expected - names)
|
||||
|
|
|
@ -120,7 +120,13 @@ class SettingsMenuItem(SubmenuMenuItem):
|
|||
|
||||
@hooks.register("register_admin_menu_item")
|
||||
def register_settings_menu():
|
||||
return SettingsMenuItem(_("Settings"), settings_menu, icon_name="cogs", order=10000)
|
||||
return SettingsMenuItem(
|
||||
_("Settings"),
|
||||
settings_menu,
|
||||
name="settings",
|
||||
icon_name="cogs",
|
||||
order=10000,
|
||||
)
|
||||
|
||||
|
||||
@hooks.register("register_permissions")
|
||||
|
@ -969,7 +975,13 @@ def register_aging_pages_report_menu_item():
|
|||
|
||||
@hooks.register("register_admin_menu_item")
|
||||
def register_reports_menu():
|
||||
return SubmenuMenuItem(_("Reports"), reports_menu, icon_name="site", order=9000)
|
||||
return SubmenuMenuItem(
|
||||
_("Reports"),
|
||||
reports_menu,
|
||||
name="reports",
|
||||
icon_name="site",
|
||||
order=9000,
|
||||
)
|
||||
|
||||
|
||||
@hooks.register("register_help_menu_item")
|
||||
|
@ -1002,9 +1014,9 @@ def register_help_menu():
|
|||
return DismissibleSubmenuMenuItem(
|
||||
_("Help"),
|
||||
help_menu,
|
||||
name="help",
|
||||
icon_name="help",
|
||||
order=11000,
|
||||
name="help",
|
||||
)
|
||||
|
||||
|
||||
|
|
|
@ -39,7 +39,11 @@ class SnippetsMenuItem(MenuItem):
|
|||
@hooks.register("register_admin_menu_item")
|
||||
def register_snippets_menu_item():
|
||||
return SnippetsMenuItem(
|
||||
_("Snippets"), reverse("wagtailsnippets:index"), icon_name="snippet", order=500
|
||||
_("Snippets"),
|
||||
reverse("wagtailsnippets:index"),
|
||||
name="snippets",
|
||||
icon_name="snippet",
|
||||
order=500,
|
||||
)
|
||||
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue