mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-26 01:06:11 -06:00
adds filter query parameter on ObjectCountsWidget #12599
This commit is contained in:
parent
24a51dd86e
commit
3b9d9c686a
@ -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(),
|
||||
})
|
||||
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
<div class="list-group list-group-flush">
|
||||
{% for model, count in counts %}
|
||||
{% if count != None %}
|
||||
<a href="{% url model|viewname:"list" %}" class="list-group-item list-group-item-action">
|
||||
<a href="{% url model|viewname:"list" %}{% if filters %}?{{ filters }}{% endif %}" class="list-group-item list-group-item-action">
|
||||
<div class="d-flex w-100 justify-content-between align-items-center">
|
||||
{{ model|meta:"verbose_name_plural"|bettertitle }}
|
||||
<h6 class="mb-1">{{ count }}</h6>
|
||||
|
Loading…
Reference in New Issue
Block a user