diff --git a/wagtail/wagtailadmin/menu.py b/wagtail/wagtailadmin/menu.py
index 29d774e03..34b9abcbf 100644
--- a/wagtail/wagtailadmin/menu.py
+++ b/wagtail/wagtailadmin/menu.py
@@ -36,7 +36,7 @@ class MenuItem(with_metaclass(MediaDefiningClass)):
"""
return True
- def render_html(self):
+ def render_html(self, request):
return format_html(
"""
""",
self.name, self.url, self.classnames, self.attr_string, self.label)
@@ -76,7 +76,13 @@ class Menu(object):
for fn in hooks.get_hooks(self.construct_hook_name):
fn(request, menu_items)
- rendered_menu_items = [item.render_html() for item in sorted(menu_items, key=lambda i: i.order)]
+ rendered_menu_items = []
+ for item in sorted(menu_items, key=lambda i: i.order):
+ try:
+ rendered_menu_items.append(item.render_html(request))
+ except TypeError:
+ # fallback for older render_html methods that don't accept a request arg
+ rendered_menu_items.append(item.render_html())
return mark_safe(''.join(rendered_menu_items))