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 @@