From d6f2b132844d1923932447c0ce67c581f723f433 Mon Sep 17 00:00:00 2001 From: Matt Westcott Date: Mon, 11 Aug 2014 19:24:09 +0100 Subject: [PATCH] Support passing html attributes into MenuItem --- wagtail/wagtailadmin/menu.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/wagtail/wagtailadmin/menu.py b/wagtail/wagtailadmin/menu.py index 74e3c406c..0ad4eb439 100644 --- a/wagtail/wagtailadmin/menu.py +++ b/wagtail/wagtailadmin/menu.py @@ -2,19 +2,30 @@ from __future__ import unicode_literals from six import text_type +try: + # renamed util -> utils in Django 1.7; try the new name first + from django.forms.utils import flatatt +except ImportError: + from django.forms.util import flatatt + from django.utils.text import slugify from django.utils.html import format_html class MenuItem(object): - def __init__(self, label, url, name=None, classnames='', order=1000): + def __init__(self, label, url, name=None, classnames='', attrs=None, order=1000): self.label = label self.url = url self.classnames = classnames self.name = (name or slugify(text_type(label))) self.order = order + if attrs: + self.attr_string = flatatt(attrs) + else: + self.attr_string = "" + def render_html(self): return format_html( - """""", - self.name, self.url, self.classnames, self.label) + """""", + self.name, self.url, self.classnames, self.attr_string, self.label)