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(
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'
)

View File

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