Source code for thaliawebsite.templatetags.menu
"""Provides a template handler that renders the menu."""
from django import template
from django.urls import reverse
from ..menus import MAIN_MENU
register = template.Library()
[docs]@register.inclusion_tag("menu/menu.html", takes_context=True)
def render_main_menu(context):
"""Render the main menu in this place.
Accounts for logged-in status and locale.
"""
path = None
if "request" in context:
path = context.get("request").path
for item in MAIN_MENU:
active = "name" in item and reverse(item["name"]) == path
if not active and "submenu" in item:
for subitem in item["submenu"]:
if "name" in subitem and reverse(subitem["name"]) == path:
subitem["active"] = True
active = True
else:
subitem["active"] = False
item["active"] = active
return {"menu": MAIN_MENU, "request": context.get("request")}