mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
* Added devices instances column for config templates. * Added devices instances column for config templates. * Add counts for VMs, roles, and platforms --------- Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com>
This commit is contained in:
committed by
GitHub
parent
0e3c35ae58
commit
79b9dc2013
@ -414,15 +414,35 @@ class ConfigTemplateTable(NetBoxTable):
|
|||||||
tags = columns.TagColumn(
|
tags = columns.TagColumn(
|
||||||
url_name='extras:configtemplate_list'
|
url_name='extras:configtemplate_list'
|
||||||
)
|
)
|
||||||
|
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',
|
||||||
|
url_params={'config_template_id': 'pk'},
|
||||||
|
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',
|
'platform_count', 'device_count', 'vm_count', 'created', 'last_updated', 'tags',
|
||||||
)
|
)
|
||||||
default_columns = (
|
default_columns = (
|
||||||
'pk', 'name', 'description', 'is_synced',
|
'pk', 'name', 'description', 'is_synced', 'device_count', 'vm_count',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -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, 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
|
||||||
@ -24,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 *
|
||||||
@ -624,7 +626,12 @@ class ObjectConfigContextView(generic.ObjectView):
|
|||||||
#
|
#
|
||||||
|
|
||||||
class ConfigTemplateListView(generic.ObjectListView):
|
class ConfigTemplateListView(generic.ObjectListView):
|
||||||
queryset = ConfigTemplate.objects.all()
|
queryset = ConfigTemplate.objects.annotate(
|
||||||
|
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
|
||||||
table = tables.ConfigTemplateTable
|
table = tables.ConfigTemplateTable
|
||||||
|
Reference in New Issue
Block a user