From 571a3e9677b83d76323ea7a9a6c9ed7597a051ca Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 1 Nov 2018 10:51:38 -0400 Subject: [PATCH] Added cable column to console/power/interface connection tables --- netbox/dcim/tables.py | 22 +++++++++++++++++----- netbox/dcim/views.py | 6 +++--- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/netbox/dcim/tables.py b/netbox/dcim/tables.py index 39085cc45..d94fa6780 100644 --- a/netbox/dcim/tables.py +++ b/netbox/dcim/tables.py @@ -672,7 +672,7 @@ class CableTable(BaseTable): class ConsoleConnectionTable(BaseTable): console_server = tables.LinkColumn( - 'dcim:device', + viewname='dcim:device', accessor=Accessor('connected_endpoint.device'), args=[Accessor('connected_endpoint.device.pk')], verbose_name='Console server' @@ -680,15 +680,19 @@ class ConsoleConnectionTable(BaseTable): connected_endpoint = tables.Column(verbose_name='Port') device = tables.LinkColumn('dcim:device', args=[Accessor('device.pk')], verbose_name='Device') name = tables.Column(verbose_name='Console port') + cable = tables.LinkColumn( + viewname='dcim:cable', + args=[Accessor('cable.pk')] + ) class Meta(BaseTable.Meta): model = ConsolePort - fields = ('console_server', 'connected_endpoint', 'device', 'name') + fields = ('console_server', 'connected_endpoint', 'device', 'name', 'cable') class PowerConnectionTable(BaseTable): pdu = tables.LinkColumn( - 'dcim:device', + viewname='dcim:device', accessor=Accessor('connected_endpoint.device'), args=[Accessor('connected_endpoint.device.pk')], verbose_name='PDU' @@ -696,10 +700,14 @@ class PowerConnectionTable(BaseTable): connected_endpoint = tables.Column(verbose_name='Outlet') device = tables.LinkColumn('dcim:device', args=[Accessor('device.pk')], verbose_name='Device') name = tables.Column(verbose_name='Power Port') + cable = tables.LinkColumn( + viewname='dcim:cable', + args=[Accessor('cable.pk')] + ) class Meta(BaseTable.Meta): model = PowerPort - fields = ('pdu', 'connected_endpoint', 'device', 'name') + fields = ('pdu', 'connected_endpoint', 'device', 'name', 'cable') class InterfaceConnectionTable(BaseTable): @@ -727,10 +735,14 @@ class InterfaceConnectionTable(BaseTable): args=[Accessor('connected_endpoint.pk')], verbose_name='Interface B' ) + cable = tables.LinkColumn( + viewname='dcim:cable', + args=[Accessor('cable.pk')] + ) class Meta(BaseTable.Meta): model = Interface - fields = ('device_a', 'interface_a', 'device_b', 'interface_b') + fields = ('device_a', 'interface_a', 'device_b', 'interface_b', 'cable') # diff --git a/netbox/dcim/views.py b/netbox/dcim/views.py index 6f1b3aea5..617f27854 100644 --- a/netbox/dcim/views.py +++ b/netbox/dcim/views.py @@ -1692,7 +1692,7 @@ class ConsoleConnectionsListView(ObjectListView): ).filter( connected_endpoint__isnull=False ).order_by( - 'connected_endpoint__device__name', 'connected_endpoint__name' + 'cable', 'connected_endpoint__device__name', 'connected_endpoint__name' ) filter = filters.ConsoleConnectionFilter filter_form = forms.ConsoleConnectionFilterForm @@ -1706,7 +1706,7 @@ class PowerConnectionsListView(ObjectListView): ).filter( connected_endpoint__isnull=False ).order_by( - 'connected_endpoint__device__name', 'connected_endpoint__name' + 'cable', 'connected_endpoint__device__name', 'connected_endpoint__name' ) filter = filters.PowerConnectionFilter filter_form = forms.PowerConnectionFilterForm @@ -1716,7 +1716,7 @@ class PowerConnectionsListView(ObjectListView): class InterfaceConnectionsListView(ObjectListView): queryset = Interface.objects.select_related( - 'device', '_connected_interface__device' + 'device', 'cable', '_connected_interface__device' ).filter( # Avoid duplicate connections by only selecting the lower PK in a connected pair _connected_interface__isnull=False,