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))