51 lines
1.3 KiB
Python
51 lines
1.3 KiB
Python
from django import template
|
|
from django.utils.html import format_html
|
|
from django.urls import reverse
|
|
|
|
|
|
register = template.Library()
|
|
|
|
|
|
@register.simple_tag(takes_context=True)
|
|
def menuitem(context, url, css_class, title):
|
|
url = reverse(url)
|
|
# css_class = "" + css_class
|
|
|
|
if len(url) > 1:
|
|
if context.request.path.startswith(url):
|
|
return format_html(
|
|
'<li class="active"><a href="{}"><i class="{}"></i><p>{}</p></a></li>',
|
|
url,
|
|
css_class,
|
|
title,
|
|
)
|
|
|
|
if url == "/admin/":
|
|
return format_html(
|
|
'<li><a href="{}" target="_blank"><i class="{}"></i><p>{}</p></a></li>',
|
|
url,
|
|
css_class,
|
|
title,
|
|
)
|
|
return format_html(
|
|
'<li><a href="{}"><i class="{}"></i><p>{}</p></a></li>',
|
|
url,
|
|
css_class,
|
|
title,
|
|
)
|
|
|
|
if context.request.path == url: # si le contexte est "/"
|
|
return format_html(
|
|
'<li class="active"><a href="{}"><i class="{}"></i><p>{}</p></a></li>',
|
|
url,
|
|
css_class,
|
|
title,
|
|
)
|
|
|
|
return format_html(
|
|
'<li><a href="{}"><i class="{}"></i><p>{}</p></a></li>',
|
|
url,
|
|
css_class,
|
|
title,
|
|
)
|