diff --git a/aleksis/core/static/style.scss b/aleksis/core/static/style.scss index a7b29299653c8e40d7b98304dcf2ea6f68ee4de2..6455b554fd818522ecfdd43757792e475d6bcb95 100644 --- a/aleksis/core/static/style.scss +++ b/aleksis/core/static/style.scss @@ -136,9 +136,8 @@ ul.sidenav li.logo > a:hover { background-color: lighten($primary-color, 5%); } -li.active > a > .sidenav-badge { - background-color: whitesmoke !important; - color: $primary-color !important; +.sidenav-badge { + min-width: 2rem!important; } .sidenav li.search { diff --git a/aleksis/core/templates/core/partials/sidenav.html b/aleksis/core/templates/core/partials/sidenav.html index 4c782285f35a3507a755c4e3d96ddffe007ea83f..54df4fe73e4642a693b63bbad76b7941fe142e76 100644 --- a/aleksis/core/templates/core/partials/sidenav.html +++ b/aleksis/core/templates/core/partials/sidenav.html @@ -1,6 +1,6 @@ {# -*- engine:django -*- #} -{% load menu_generator %} +{% load menu_generator data_helpers %} {% get_menu "NAV_MENU_CORE" as core_menu %} @@ -16,6 +16,10 @@ <i class="material-icons">{{ item.icon }}</i> {% endif %} {{ item.name }} + {% build_badge item as badge %} + {% if badge %} + <span class="new badge sidenav-badge"> {{ badge }}</span> + {% endif %} </a> </li> {% endif %} @@ -28,6 +32,10 @@ <i class="material-icons">{{ item.icon }}</i> {% endif %} {{ item.name }} + {% build_badge item as badge %} + {% if badge %} + <span class="new badge sidenav-badge"> {{ badge }}</span> + {% endif %} </a> <div class="collapsible-body"> <ul> @@ -40,6 +48,10 @@ <i class="material-icons">{{ menu.icon }}</i> {% endif %} {{ menu.name }} + {% build_badge item as badge %} + {% if badge %} + <span class="new badge sidenav-badge"> {{ badge }}</span> + {% endif %} </a> </li> {% endfor %} diff --git a/aleksis/core/templatetags/data_helpers.py b/aleksis/core/templatetags/data_helpers.py index ab2309f260dd6b039cc722bae86fa71637967a1f..5e263ba370bb732a80cb9d6c5d64880842ff5bb5 100644 --- a/aleksis/core/templatetags/data_helpers.py +++ b/aleksis/core/templatetags/data_helpers.py @@ -51,3 +51,14 @@ def parse_json(value: Optional[str] = None) -> Union[dict, None]: if not value: return None return json.loads(value) + + +@register.simple_tag(takes_context=True) +def build_badge(context: dict, item: dict) -> Any: + """Get menu badge content from django-menu-generator dict.""" + request = context["request"] + badge = item.get("badge") + if callable(badge): + return badge(request) + else: + return badge