1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Fixes #4894: Fix display of device/VM counts on platforms list

This commit is contained in:
Jeremy Stretch
2020-07-24 09:16:14 -04:00
parent a262a8320b
commit bb4f21d5ee
3 changed files with 20 additions and 11 deletions

View File

@ -6,8 +6,9 @@
* [#4875](https://github.com/netbox-community/netbox/issues/4875) - Fix documentation for image attachments * [#4875](https://github.com/netbox-community/netbox/issues/4875) - Fix documentation for image attachments
* [#4876](https://github.com/netbox-community/netbox/issues/4876) - Fix labels for sites in staging or decommissioning status * [#4876](https://github.com/netbox-community/netbox/issues/4876) - Fix labels for sites in staging or decommissioning status
* [#4880](https://github.com/netbox-community/netbox/issues/4880) - Fix remove tagged vlans if not assigned in bulk interface editting * [#4880](https://github.com/netbox-community/netbox/issues/4880) - Fix removal of tagged VLANs if not assigned in bulk interface editing
* [#4887](https://github.com/netbox-community/netbox/issues/4887) - Don't disable NAPALM tabs when device has no primary IP * [#4887](https://github.com/netbox-community/netbox/issues/4887) - Don't disable NAPALM tabs when device has no primary IP
* [#4894](https://github.com/netbox-community/netbox/issues/4894) - Fix display of device/VM counts on platforms list
--- ---

View File

@ -94,6 +94,14 @@ MANUFACTURER_ACTIONS = """
{% endif %} {% endif %}
""" """
DEVICEROLE_DEVICE_COUNT = """
<a href="{% url 'dcim:device_list' %}?role={{ record.slug }}">{{ value|default:0 }}</a>
"""
DEVICEROLE_VM_COUNT = """
<a href="{% url 'virtualization:virtualmachine_list' %}?role={{ record.slug }}">{{ value|default:0 }}</a>
"""
DEVICEROLE_ACTIONS = """ DEVICEROLE_ACTIONS = """
<a href="{% url 'dcim:devicerole_changelog' slug=record.slug %}" class="btn btn-default btn-xs" title="Change log"> <a href="{% url 'dcim:devicerole_changelog' slug=record.slug %}" class="btn btn-default btn-xs" title="Change log">
<i class="fa fa-history"></i> <i class="fa fa-history"></i>
@ -103,12 +111,12 @@ DEVICEROLE_ACTIONS = """
{% endif %} {% endif %}
""" """
DEVICE_COUNT = """ PLATFORM_DEVICE_COUNT = """
<a href="{% url 'dcim:device_list' %}?role={{ record.slug }}">{{ value|default:0 }}</a> <a href="{% url 'dcim:device_list' %}?platform={{ record.slug }}">{{ value|default:0 }}</a>
""" """
VM_COUNT = """ PLATFORM_VM_COUNT = """
<a href="{% url 'virtualization:virtualmachine_list' %}?role={{ record.slug }}">{{ value|default:0 }}</a> <a href="{% url 'virtualization:virtualmachine_list' %}?platform={{ record.slug }}">{{ value|default:0 }}</a>
""" """
PLATFORM_ACTIONS = """ PLATFORM_ACTIONS = """
@ -697,11 +705,11 @@ class DeviceBayTemplateTable(BaseTable):
class DeviceRoleTable(BaseTable): class DeviceRoleTable(BaseTable):
pk = ToggleColumn() pk = ToggleColumn()
device_count = tables.TemplateColumn( device_count = tables.TemplateColumn(
template_code=DEVICE_COUNT, template_code=DEVICEROLE_DEVICE_COUNT,
verbose_name='Devices' verbose_name='Devices'
) )
vm_count = tables.TemplateColumn( vm_count = tables.TemplateColumn(
template_code=VM_COUNT, template_code=DEVICEROLE_VM_COUNT,
verbose_name='VMs' verbose_name='VMs'
) )
color = tables.TemplateColumn( color = tables.TemplateColumn(
@ -728,11 +736,11 @@ class DeviceRoleTable(BaseTable):
class PlatformTable(BaseTable): class PlatformTable(BaseTable):
pk = ToggleColumn() pk = ToggleColumn()
device_count = tables.TemplateColumn( device_count = tables.TemplateColumn(
template_code=DEVICE_COUNT, template_code=PLATFORM_DEVICE_COUNT,
verbose_name='Devices' verbose_name='Devices'
) )
vm_count = tables.TemplateColumn( vm_count = tables.TemplateColumn(
template_code=VM_COUNT, template_code=PLATFORM_VM_COUNT,
verbose_name='VMs' verbose_name='VMs'
) )
actions = tables.TemplateColumn( actions = tables.TemplateColumn(

View File

@ -1060,8 +1060,8 @@ class DeviceRoleBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
class PlatformListView(PermissionRequiredMixin, ObjectListView): class PlatformListView(PermissionRequiredMixin, ObjectListView):
permission_required = 'dcim.view_platform' permission_required = 'dcim.view_platform'
queryset = Platform.objects.annotate( queryset = Platform.objects.annotate(
device_count=get_subquery(Device, 'device_role'), device_count=get_subquery(Device, 'platform'),
vm_count=get_subquery(VirtualMachine, 'role') vm_count=get_subquery(VirtualMachine, 'platform')
) )
table = tables.PlatformTable table = tables.PlatformTable