Added devices instances column for config templates.

This commit is contained in:
Julio-Oliveira-Encora 2024-04-23 10:36:21 -03:00
parent b7668fbfc3
commit 3b0ab78a99
2 changed files with 11 additions and 3 deletions

View File

@ -414,15 +414,20 @@ class ConfigTemplateTable(NetBoxTable):
tags = columns.TagColumn( tags = columns.TagColumn(
url_name='extras:configtemplate_list' 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): class Meta(NetBoxTable.Meta):
model = ConfigTemplate model = ConfigTemplate
fields = ( fields = (
'pk', 'id', 'name', 'description', 'data_source', 'data_file', 'data_synced', 'created', 'last_updated', 'pk', 'id', 'name', 'description', 'data_source', 'data_file', 'data_synced', 'created', 'last_updated',
'tags', 'tags', 'instance_count',
) )
default_columns = ( default_columns = (
'pk', 'name', 'description', 'is_synced', 'pk', 'name', 'description', 'is_synced', 'instance_count'
) )

View File

@ -13,6 +13,7 @@ from core.choices import JobStatusChoices, ManagedFileRootPathChoices
from core.forms import ManagedFileForm from core.forms import ManagedFileForm
from core.models import Job from core.models import Job
from core.tables import JobTable from core.tables import JobTable
from dcim.models import Device
from extras.dashboard.forms import DashboardWidgetAddForm, DashboardWidgetForm from extras.dashboard.forms import DashboardWidgetAddForm, DashboardWidgetForm
from extras.dashboard.utils import get_widget_class from extras.dashboard.utils import get_widget_class
from netbox.constants import DEFAULT_ACTION_PERMISSIONS from netbox.constants import DEFAULT_ACTION_PERMISSIONS
@ -624,7 +625,9 @@ class ObjectConfigContextView(generic.ObjectView):
# #
class ConfigTemplateListView(generic.ObjectListView): class ConfigTemplateListView(generic.ObjectListView):
queryset = ConfigTemplate.objects.all() queryset = ConfigTemplate.objects.annotate(
instance_count=count_related(Device, 'config_template')
)
filterset = filtersets.ConfigTemplateFilterSet filterset = filtersets.ConfigTemplateFilterSet
filterset_form = forms.ConfigTemplateFilterForm filterset_form = forms.ConfigTemplateFilterForm
table = tables.ConfigTemplateTable table = tables.ConfigTemplateTable