From fe32acc871d4490baeb88dd976a59a3ebaeed8b4 Mon Sep 17 00:00:00 2001 From: lukas Date: Fri, 21 Nov 2025 11:07:15 +0100 Subject: [PATCH] feat: sidebar group badge --- src/unfold/sites.py | 9 +++++++++ src/unfold/templates/unfold/helpers/app_list.html | 2 ++ 2 files changed, 11 insertions(+) diff --git a/src/unfold/sites.py b/src/unfold/sites.py index e8e91597..d3b78322 100644 --- a/src/unfold/sites.py +++ b/src/unfold/sites.py @@ -359,6 +359,15 @@ def get_sidebar_list(self, request: HttpRequest) -> list[dict[str, Any]]: for group in copy.deepcopy(navigation): group["items"] = self._get_navigation_items(request, group["items"], tabs) + + # Badge callbacks + if "badge" in group and isinstance(group["badge"], str): + try: + callback = import_string(group["badge"]) + group["badge_callback"] = lazy(callback)(request) + except ImportError: + pass + results.append(group) return results diff --git a/src/unfold/templates/unfold/helpers/app_list.html b/src/unfold/templates/unfold/helpers/app_list.html index 036f5e12..4a50dd07 100644 --- a/src/unfold/templates/unfold/helpers/app_list.html +++ b/src/unfold/templates/unfold/helpers/app_list.html @@ -15,6 +15,8 @@

{{ group.title }} + {% include "unfold/helpers/app_list_badge.html" with item=group %} + {% if group.collapsible %} chevron_right