mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-13 02:58:17 -06:00
Add counts for VMs, roles, and platforms
This commit is contained in:
parent
5148d4f398
commit
74e1fb1202
@ -414,20 +414,35 @@ class ConfigTemplateTable(NetBoxTable):
|
|||||||
tags = columns.TagColumn(
|
tags = columns.TagColumn(
|
||||||
url_name='extras:configtemplate_list'
|
url_name='extras:configtemplate_list'
|
||||||
)
|
)
|
||||||
instance_count = columns.LinkedCountColumn(
|
role_count = columns.LinkedCountColumn(
|
||||||
|
viewname='dcim:devicerole_list',
|
||||||
|
url_params={'config_template_id': 'pk'},
|
||||||
|
verbose_name=_('Device Roles')
|
||||||
|
)
|
||||||
|
platform_count = columns.LinkedCountColumn(
|
||||||
|
viewname='dcim:platform_list',
|
||||||
|
url_params={'config_template_id': 'pk'},
|
||||||
|
verbose_name=_('Platforms')
|
||||||
|
)
|
||||||
|
device_count = columns.LinkedCountColumn(
|
||||||
viewname='dcim:device_list',
|
viewname='dcim:device_list',
|
||||||
url_params={'config_template_id': 'pk'},
|
url_params={'config_template_id': 'pk'},
|
||||||
verbose_name=_('Devices')
|
verbose_name=_('Devices')
|
||||||
)
|
)
|
||||||
|
vm_count = columns.LinkedCountColumn(
|
||||||
|
viewname='virtualization:virtualmachine_list',
|
||||||
|
url_params={'config_template_id': 'pk'},
|
||||||
|
verbose_name=_('Virtual Machines')
|
||||||
|
)
|
||||||
|
|
||||||
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', 'role_count',
|
||||||
'tags', 'instance_count',
|
'platform_count', 'device_count', 'vm_count', 'created', 'last_updated', 'tags',
|
||||||
)
|
)
|
||||||
default_columns = (
|
default_columns = (
|
||||||
'pk', 'name', 'description', 'is_synced', 'instance_count'
|
'pk', 'name', 'description', 'is_synced', 'device_count', 'vm_count',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -13,7 +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 dcim.models import Device, DeviceRole, Platform
|
||||||
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
|
||||||
@ -25,6 +25,7 @@ from utilities.rqworker import get_workers_for_queue
|
|||||||
from utilities.templatetags.builtins.filters import render_markdown
|
from utilities.templatetags.builtins.filters import render_markdown
|
||||||
from utilities.utils import copy_safe_request, count_related, get_viewname, normalize_querydict, shallow_compare_dict
|
from utilities.utils import copy_safe_request, count_related, get_viewname, normalize_querydict, shallow_compare_dict
|
||||||
from utilities.views import ContentTypePermissionRequiredMixin, register_model_view
|
from utilities.views import ContentTypePermissionRequiredMixin, register_model_view
|
||||||
|
from virtualization.models import VirtualMachine
|
||||||
from . import filtersets, forms, tables
|
from . import filtersets, forms, tables
|
||||||
from .forms.reports import ReportForm
|
from .forms.reports import ReportForm
|
||||||
from .models import *
|
from .models import *
|
||||||
@ -626,7 +627,10 @@ class ObjectConfigContextView(generic.ObjectView):
|
|||||||
|
|
||||||
class ConfigTemplateListView(generic.ObjectListView):
|
class ConfigTemplateListView(generic.ObjectListView):
|
||||||
queryset = ConfigTemplate.objects.annotate(
|
queryset = ConfigTemplate.objects.annotate(
|
||||||
instance_count=count_related(Device, 'config_template')
|
device_count=count_related(Device, 'config_template'),
|
||||||
|
vm_count=count_related(VirtualMachine, 'config_template'),
|
||||||
|
role_count=count_related(DeviceRole, 'config_template'),
|
||||||
|
platform_count=count_related(Platform, 'config_template'),
|
||||||
)
|
)
|
||||||
filterset = filtersets.ConfigTemplateFilterSet
|
filterset = filtersets.ConfigTemplateFilterSet
|
||||||
filterset_form = forms.ConfigTemplateFilterForm
|
filterset_form = forms.ConfigTemplateFilterForm
|
||||||
|
Loading…
Reference in New Issue
Block a user