From 3b9d9c686a84a0984e560addf42c919748424b19 Mon Sep 17 00:00:00 2001 From: Abhimanyu Saharan Date: Fri, 26 May 2023 02:14:27 +0530 Subject: [PATCH] adds filter query parameter on ObjectCountsWidget #12599 --- netbox/extras/dashboard/widgets.py | 10 ++++++++++ .../extras/dashboard/widgets/objectcounts.html | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/netbox/extras/dashboard/widgets.py b/netbox/extras/dashboard/widgets.py index dc68e1388..d8adcfdfb 100644 --- a/netbox/extras/dashboard/widgets.py +++ b/netbox/extras/dashboard/widgets.py @@ -1,6 +1,7 @@ import uuid from functools import cached_property from hashlib import sha256 +from itertools import chain from urllib.parse import urlencode import feedparser @@ -121,6 +122,14 @@ class DashboardWidget: 'config': self.config, } + def filter_query(self): + query_string = '' + if filters := self.config.get('filters', None): + filter_items = [(k, v) if not isinstance(v, list) else zip([k] * len(v), v) for k, v in filters.items()] + query_string = urlencode(filter_items, doseq=True) + + return query_string + @register_widget class NoteWidget(DashboardWidget): @@ -182,6 +191,7 @@ class ObjectCountsWidget(DashboardWidget): return render_to_string(self.template_name, { 'counts': counts, + 'filters': self.filter_query(), }) diff --git a/netbox/templates/extras/dashboard/widgets/objectcounts.html b/netbox/templates/extras/dashboard/widgets/objectcounts.html index d0e604c9a..cb511507b 100644 --- a/netbox/templates/extras/dashboard/widgets/objectcounts.html +++ b/netbox/templates/extras/dashboard/widgets/objectcounts.html @@ -4,7 +4,7 @@
{% for model, count in counts %} {% if count != None %} - +
{{ model|meta:"verbose_name_plural"|bettertitle }}
{{ count }}