From e5a8aeca8874591c85e0871680a1e7d4cb8672f2 Mon Sep 17 00:00:00 2001 From: Arthur Date: Mon, 20 May 2024 14:25:27 -0700 Subject: [PATCH 1/2] 14653 Add Inventory Item column to all Device components tables --- netbox/dcim/tables/devices.py | 42 +++++++++++++++++++++++++++-------- 1 file changed, 33 insertions(+), 9 deletions(-) diff --git a/netbox/dcim/tables/devices.py b/netbox/dcim/tables/devices.py index 1696315066a..036c1399397 100644 --- a/netbox/dcim/tables/devices.py +++ b/netbox/dcim/tables/devices.py @@ -358,6 +358,10 @@ class ConsolePortTable(ModularDeviceComponentTable, PathEndpointTable): 'args': [Accessor('device_id')], } ) + inventory_items = columns.ManyToManyColumn( + linkify_item=True, + verbose_name=_('Inventory Items'), + ) tags = columns.TagColumn( url_name='dcim:consoleport_list' ) @@ -366,7 +370,7 @@ class Meta(DeviceComponentTable.Meta): model = models.ConsolePort fields = ( 'pk', 'id', 'name', 'device', 'module_bay', 'module', 'label', 'type', 'speed', 'description', - 'mark_connected', 'cable', 'cable_color', 'link_peer', 'connection', 'tags', 'created', 'last_updated', + 'mark_connected', 'cable', 'cable_color', 'link_peer', 'connection', 'inventory_items', 'tags', 'created', 'last_updated', ) default_columns = ('pk', 'name', 'device', 'label', 'type', 'speed', 'description') @@ -402,6 +406,10 @@ class ConsoleServerPortTable(ModularDeviceComponentTable, PathEndpointTable): 'args': [Accessor('device_id')], } ) + inventory_items = columns.ManyToManyColumn( + linkify_item=True, + verbose_name=_('Inventory Items'), + ) tags = columns.TagColumn( url_name='dcim:consoleserverport_list' ) @@ -410,7 +418,7 @@ class Meta(DeviceComponentTable.Meta): model = models.ConsoleServerPort fields = ( 'pk', 'id', 'name', 'device', 'module_bay', 'module', 'label', 'type', 'speed', 'description', - 'mark_connected', 'cable', 'cable_color', 'link_peer', 'connection', 'tags', 'created', 'last_updated', + 'mark_connected', 'cable', 'cable_color', 'link_peer', 'connection', 'inventory_items', 'tags', 'created', 'last_updated', ) default_columns = ('pk', 'name', 'device', 'label', 'type', 'speed', 'description') @@ -453,6 +461,10 @@ class PowerPortTable(ModularDeviceComponentTable, PathEndpointTable): allocated_draw = tables.Column( verbose_name=_('Allocated draw (W)') ) + inventory_items = columns.ManyToManyColumn( + linkify_item=True, + verbose_name=_('Inventory Items'), + ) tags = columns.TagColumn( url_name='dcim:powerport_list' ) @@ -461,8 +473,8 @@ class Meta(DeviceComponentTable.Meta): model = models.PowerPort fields = ( 'pk', 'id', 'name', 'device', 'module_bay', 'module', 'label', 'type', 'description', 'mark_connected', - 'maximum_draw', 'allocated_draw', 'cable', 'cable_color', 'link_peer', 'connection', 'tags', 'created', - 'last_updated', + 'maximum_draw', 'allocated_draw', 'cable', 'cable_color', 'link_peer', 'connection', 'inventory_items', + 'tags', 'created', 'last_updated', ) default_columns = ('pk', 'name', 'device', 'label', 'type', 'maximum_draw', 'allocated_draw', 'description') @@ -505,6 +517,10 @@ class PowerOutletTable(ModularDeviceComponentTable, PathEndpointTable): verbose_name=_('Power Port'), linkify=True ) + inventory_items = columns.ManyToManyColumn( + linkify_item=True, + verbose_name=_('Inventory Items'), + ) tags = columns.TagColumn( url_name='dcim:poweroutlet_list' ) @@ -513,8 +529,8 @@ class Meta(DeviceComponentTable.Meta): model = models.PowerOutlet fields = ( 'pk', 'id', 'name', 'device', 'module_bay', 'module', 'label', 'type', 'description', 'power_port', - 'feed_leg', 'mark_connected', 'cable', 'cable_color', 'link_peer', 'connection', 'tags', 'created', - 'last_updated', + 'feed_leg', 'mark_connected', 'cable', 'cable_color', 'link_peer', 'connection', 'inventory_items', + 'tags', 'created', 'last_updated', ) default_columns = ('pk', 'name', 'device', 'label', 'type', 'power_port', 'feed_leg', 'description') @@ -705,6 +721,10 @@ class FrontPortTable(ModularDeviceComponentTable, CableTerminationTable): verbose_name=_('Rear Port'), linkify=True ) + inventory_items = columns.ManyToManyColumn( + linkify_item=True, + verbose_name=_('Inventory Items'), + ) tags = columns.TagColumn( url_name='dcim:frontport_list' ) @@ -713,8 +733,8 @@ class Meta(DeviceComponentTable.Meta): model = models.FrontPort fields = ( 'pk', 'id', 'name', 'device', 'module_bay', 'module', 'label', 'type', 'color', 'rear_port', - 'rear_port_position', 'description', 'mark_connected', 'cable', 'cable_color', 'link_peer', 'tags', - 'created', 'last_updated', + 'rear_port_position', 'description', 'mark_connected', 'cable', 'cable_color', 'link_peer', + 'inventory_items', 'tags', 'created', 'last_updated', ) default_columns = ( 'pk', 'name', 'device', 'label', 'type', 'color', 'rear_port', 'rear_port_position', 'description', @@ -758,6 +778,10 @@ class RearPortTable(ModularDeviceComponentTable, CableTerminationTable): color = columns.ColorColumn( verbose_name=_('Color'), ) + inventory_items = columns.ManyToManyColumn( + linkify_item=True, + verbose_name=_('Inventory Items'), + ) tags = columns.TagColumn( url_name='dcim:rearport_list' ) @@ -766,7 +790,7 @@ class Meta(DeviceComponentTable.Meta): model = models.RearPort fields = ( 'pk', 'id', 'name', 'device', 'module_bay', 'module', 'label', 'type', 'color', 'positions', 'description', - 'mark_connected', 'cable', 'cable_color', 'link_peer', 'tags', 'created', 'last_updated', + 'mark_connected', 'cable', 'cable_color', 'link_peer', 'inventory_items', 'tags', 'created', 'last_updated', ) default_columns = ('pk', 'name', 'device', 'label', 'type', 'color', 'description') From 3fd2f8c67ff908894da6f7ee94b6b1e8f7836667 Mon Sep 17 00:00:00 2001 From: Arthur Date: Tue, 21 May 2024 13:16:27 -0700 Subject: [PATCH 2/2] 14653 add inventory_items to base class --- netbox/dcim/tables/devices.py | 32 ++++---------------------------- 1 file changed, 4 insertions(+), 28 deletions(-) diff --git a/netbox/dcim/tables/devices.py b/netbox/dcim/tables/devices.py index 036c1399397..4925fb5172a 100644 --- a/netbox/dcim/tables/devices.py +++ b/netbox/dcim/tables/devices.py @@ -313,6 +313,10 @@ class ModularDeviceComponentTable(DeviceComponentTable): verbose_name=_('Module'), linkify=True ) + inventory_items = columns.ManyToManyColumn( + linkify_item=True, + verbose_name=_('Inventory Items'), + ) class CableTerminationTable(NetBoxTable): @@ -358,10 +362,6 @@ class ConsolePortTable(ModularDeviceComponentTable, PathEndpointTable): 'args': [Accessor('device_id')], } ) - inventory_items = columns.ManyToManyColumn( - linkify_item=True, - verbose_name=_('Inventory Items'), - ) tags = columns.TagColumn( url_name='dcim:consoleport_list' ) @@ -406,10 +406,6 @@ class ConsoleServerPortTable(ModularDeviceComponentTable, PathEndpointTable): 'args': [Accessor('device_id')], } ) - inventory_items = columns.ManyToManyColumn( - linkify_item=True, - verbose_name=_('Inventory Items'), - ) tags = columns.TagColumn( url_name='dcim:consoleserverport_list' ) @@ -461,10 +457,6 @@ class PowerPortTable(ModularDeviceComponentTable, PathEndpointTable): allocated_draw = tables.Column( verbose_name=_('Allocated draw (W)') ) - inventory_items = columns.ManyToManyColumn( - linkify_item=True, - verbose_name=_('Inventory Items'), - ) tags = columns.TagColumn( url_name='dcim:powerport_list' ) @@ -517,10 +509,6 @@ class PowerOutletTable(ModularDeviceComponentTable, PathEndpointTable): verbose_name=_('Power Port'), linkify=True ) - inventory_items = columns.ManyToManyColumn( - linkify_item=True, - verbose_name=_('Inventory Items'), - ) tags = columns.TagColumn( url_name='dcim:poweroutlet_list' ) @@ -634,10 +622,6 @@ class InterfaceTable(ModularDeviceComponentTable, BaseInterfaceTable, PathEndpoi verbose_name=_('VRF'), linkify=True ) - inventory_items = columns.ManyToManyColumn( - linkify_item=True, - verbose_name=_('Inventory Items'), - ) tags = columns.TagColumn( url_name='dcim:interface_list' ) @@ -721,10 +705,6 @@ class FrontPortTable(ModularDeviceComponentTable, CableTerminationTable): verbose_name=_('Rear Port'), linkify=True ) - inventory_items = columns.ManyToManyColumn( - linkify_item=True, - verbose_name=_('Inventory Items'), - ) tags = columns.TagColumn( url_name='dcim:frontport_list' ) @@ -778,10 +758,6 @@ class RearPortTable(ModularDeviceComponentTable, CableTerminationTable): color = columns.ColorColumn( verbose_name=_('Color'), ) - inventory_items = columns.ManyToManyColumn( - linkify_item=True, - verbose_name=_('Inventory Items'), - ) tags = columns.TagColumn( url_name='dcim:rearport_list' )