From 3b0ab78a99a2f340d366981a1eb780dcf026c721 Mon Sep 17 00:00:00 2001 From: Julio-Oliveira-Encora Date: Tue, 23 Apr 2024 10:36:21 -0300 Subject: [PATCH] Added devices instances column for config templates. --- netbox/extras/tables/tables.py | 9 +++++++-- netbox/extras/views.py | 5 ++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/netbox/extras/tables/tables.py b/netbox/extras/tables/tables.py index 8482c5e24..8656349cf 100644 --- a/netbox/extras/tables/tables.py +++ b/netbox/extras/tables/tables.py @@ -414,15 +414,20 @@ class ConfigTemplateTable(NetBoxTable): tags = columns.TagColumn( url_name='extras:configtemplate_list' ) + instance_count = columns.LinkedCountColumn( + viewname='dcim:device_list', + url_params={'config_template_id': 'pk'}, + verbose_name=_('Instances') + ) class Meta(NetBoxTable.Meta): model = ConfigTemplate fields = ( 'pk', 'id', 'name', 'description', 'data_source', 'data_file', 'data_synced', 'created', 'last_updated', - 'tags', + 'tags', 'instance_count', ) default_columns = ( - 'pk', 'name', 'description', 'is_synced', + 'pk', 'name', 'description', 'is_synced', 'instance_count' ) diff --git a/netbox/extras/views.py b/netbox/extras/views.py index 2bf5f349b..75ff4f053 100644 --- a/netbox/extras/views.py +++ b/netbox/extras/views.py @@ -13,6 +13,7 @@ from core.choices import JobStatusChoices, ManagedFileRootPathChoices from core.forms import ManagedFileForm from core.models import Job from core.tables import JobTable +from dcim.models import Device from extras.dashboard.forms import DashboardWidgetAddForm, DashboardWidgetForm from extras.dashboard.utils import get_widget_class from netbox.constants import DEFAULT_ACTION_PERMISSIONS @@ -624,7 +625,9 @@ class ObjectConfigContextView(generic.ObjectView): # class ConfigTemplateListView(generic.ObjectListView): - queryset = ConfigTemplate.objects.all() + queryset = ConfigTemplate.objects.annotate( + instance_count=count_related(Device, 'config_template') + ) filterset = filtersets.ConfigTemplateFilterSet filterset_form = forms.ConfigTemplateFilterForm table = tables.ConfigTemplateTable