|
@@ -2,8 +2,8 @@ import django_tables2 as tables
|
|
|
from django_tables2.utils import Accessor
|
|
from django_tables2.utils import Accessor
|
|
|
|
|
|
|
|
from dcim.models import (
|
|
from dcim.models import (
|
|
|
- ConsolePort, ConsoleServerPort, Device, DeviceBay, DeviceRole, FrontPort, Interface, InventoryItem, Platform,
|
|
|
|
|
- PowerOutlet, PowerPort, RearPort, VirtualChassis,
|
|
|
|
|
|
|
+ ConsolePort, ConsoleServerPort, Device, DeviceBay, DeviceRole, FrontPort, Interface, InventoryItem, ModuleBay,
|
|
|
|
|
+ Platform, PowerOutlet, PowerPort, RearPort, VirtualChassis,
|
|
|
)
|
|
)
|
|
|
from tenancy.tables import TenantColumn
|
|
from tenancy.tables import TenantColumn
|
|
|
from utilities.tables import (
|
|
from utilities.tables import (
|
|
@@ -25,6 +25,7 @@ __all__ = (
|
|
|
'DeviceImportTable',
|
|
'DeviceImportTable',
|
|
|
'DeviceInterfaceTable',
|
|
'DeviceInterfaceTable',
|
|
|
'DeviceInventoryItemTable',
|
|
'DeviceInventoryItemTable',
|
|
|
|
|
+ 'DeviceModuleBayTable',
|
|
|
'DevicePowerPortTable',
|
|
'DevicePowerPortTable',
|
|
|
'DevicePowerOutletTable',
|
|
'DevicePowerOutletTable',
|
|
|
'DeviceRearPortTable',
|
|
'DeviceRearPortTable',
|
|
@@ -33,6 +34,7 @@ __all__ = (
|
|
|
'FrontPortTable',
|
|
'FrontPortTable',
|
|
|
'InterfaceTable',
|
|
'InterfaceTable',
|
|
|
'InventoryItemTable',
|
|
'InventoryItemTable',
|
|
|
|
|
+ 'ModuleBayTable',
|
|
|
'PlatformTable',
|
|
'PlatformTable',
|
|
|
'PowerOutletTable',
|
|
'PowerOutletTable',
|
|
|
'PowerPortTable',
|
|
'PowerPortTable',
|
|
@@ -255,6 +257,19 @@ class DeviceComponentTable(BaseTable):
|
|
|
order_by = ('device', 'name')
|
|
order_by = ('device', 'name')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+class ModularDeviceComponentTable(DeviceComponentTable):
|
|
|
|
|
+ module_bay = tables.Column(
|
|
|
|
|
+ accessor=Accessor('module__module_bay'),
|
|
|
|
|
+ linkify={
|
|
|
|
|
+ 'viewname': 'dcim:device_modulebays',
|
|
|
|
|
+ 'args': [Accessor('device_id')],
|
|
|
|
|
+ }
|
|
|
|
|
+ )
|
|
|
|
|
+ module = tables.Column(
|
|
|
|
|
+ linkify=True
|
|
|
|
|
+ )
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
class CableTerminationTable(BaseTable):
|
|
class CableTerminationTable(BaseTable):
|
|
|
cable = tables.Column(
|
|
cable = tables.Column(
|
|
|
linkify=True
|
|
linkify=True
|
|
@@ -282,7 +297,7 @@ class PathEndpointTable(CableTerminationTable):
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
-class ConsolePortTable(DeviceComponentTable, PathEndpointTable):
|
|
|
|
|
|
|
+class ConsolePortTable(ModularDeviceComponentTable, PathEndpointTable):
|
|
|
device = tables.Column(
|
|
device = tables.Column(
|
|
|
linkify={
|
|
linkify={
|
|
|
'viewname': 'dcim:device_consoleports',
|
|
'viewname': 'dcim:device_consoleports',
|
|
@@ -296,8 +311,8 @@ class ConsolePortTable(DeviceComponentTable, PathEndpointTable):
|
|
|
class Meta(DeviceComponentTable.Meta):
|
|
class Meta(DeviceComponentTable.Meta):
|
|
|
model = ConsolePort
|
|
model = ConsolePort
|
|
|
fields = (
|
|
fields = (
|
|
|
- 'pk', 'id', 'name', 'device', 'label', 'type', 'speed', 'description', 'mark_connected', 'cable', 'cable_color',
|
|
|
|
|
- 'link_peer', 'connection', 'tags',
|
|
|
|
|
|
|
+ 'pk', 'id', 'name', 'device', 'module_bay', 'module', 'label', 'type', 'speed', 'description',
|
|
|
|
|
+ 'mark_connected', 'cable', 'cable_color', 'link_peer', 'connection', 'tags',
|
|
|
)
|
|
)
|
|
|
default_columns = ('pk', 'name', 'device', 'label', 'type', 'speed', 'description')
|
|
default_columns = ('pk', 'name', 'device', 'label', 'type', 'speed', 'description')
|
|
|
|
|
|
|
@@ -317,8 +332,8 @@ class DeviceConsolePortTable(ConsolePortTable):
|
|
|
class Meta(DeviceComponentTable.Meta):
|
|
class Meta(DeviceComponentTable.Meta):
|
|
|
model = ConsolePort
|
|
model = ConsolePort
|
|
|
fields = (
|
|
fields = (
|
|
|
- 'pk', 'id', 'name', 'label', 'type', 'speed', 'description', 'mark_connected', 'cable', 'cable_color',
|
|
|
|
|
- 'link_peer', 'connection', 'tags', 'actions'
|
|
|
|
|
|
|
+ 'pk', 'id', 'name', 'module_bay', 'module', 'label', 'type', 'speed', 'description', 'mark_connected',
|
|
|
|
|
+ 'cable', 'cable_color', 'link_peer', 'connection', 'tags', 'actions'
|
|
|
)
|
|
)
|
|
|
default_columns = ('pk', 'name', 'label', 'type', 'speed', 'description', 'cable', 'connection', 'actions')
|
|
default_columns = ('pk', 'name', 'label', 'type', 'speed', 'description', 'cable', 'connection', 'actions')
|
|
|
row_attrs = {
|
|
row_attrs = {
|
|
@@ -326,7 +341,7 @@ class DeviceConsolePortTable(ConsolePortTable):
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
-class ConsoleServerPortTable(DeviceComponentTable, PathEndpointTable):
|
|
|
|
|
|
|
+class ConsoleServerPortTable(ModularDeviceComponentTable, PathEndpointTable):
|
|
|
device = tables.Column(
|
|
device = tables.Column(
|
|
|
linkify={
|
|
linkify={
|
|
|
'viewname': 'dcim:device_consoleserverports',
|
|
'viewname': 'dcim:device_consoleserverports',
|
|
@@ -340,8 +355,8 @@ class ConsoleServerPortTable(DeviceComponentTable, PathEndpointTable):
|
|
|
class Meta(DeviceComponentTable.Meta):
|
|
class Meta(DeviceComponentTable.Meta):
|
|
|
model = ConsoleServerPort
|
|
model = ConsoleServerPort
|
|
|
fields = (
|
|
fields = (
|
|
|
- 'pk', 'id', 'name', 'device', 'label', 'type', 'speed', 'description', 'mark_connected', 'cable',
|
|
|
|
|
- 'cable_color', 'link_peer', 'connection', 'tags',
|
|
|
|
|
|
|
+ 'pk', 'id', 'name', 'device', 'module_bay', 'module', 'label', 'type', 'speed', 'description',
|
|
|
|
|
+ 'mark_connected', 'cable', 'cable_color', 'link_peer', 'connection', 'tags',
|
|
|
)
|
|
)
|
|
|
default_columns = ('pk', 'name', 'device', 'label', 'type', 'speed', 'description')
|
|
default_columns = ('pk', 'name', 'device', 'label', 'type', 'speed', 'description')
|
|
|
|
|
|
|
@@ -362,8 +377,8 @@ class DeviceConsoleServerPortTable(ConsoleServerPortTable):
|
|
|
class Meta(DeviceComponentTable.Meta):
|
|
class Meta(DeviceComponentTable.Meta):
|
|
|
model = ConsoleServerPort
|
|
model = ConsoleServerPort
|
|
|
fields = (
|
|
fields = (
|
|
|
- 'pk', 'id', 'name', 'label', 'type', 'speed', 'description', 'mark_connected', 'cable', 'cable_color',
|
|
|
|
|
- 'link_peer', 'connection', 'tags', 'actions',
|
|
|
|
|
|
|
+ 'pk', 'id', 'name', 'module_bay', 'module', 'label', 'type', 'speed', 'description', 'mark_connected',
|
|
|
|
|
+ 'cable', 'cable_color', 'link_peer', 'connection', 'tags', 'actions',
|
|
|
)
|
|
)
|
|
|
default_columns = ('pk', 'name', 'label', 'type', 'speed', 'description', 'cable', 'connection', 'actions')
|
|
default_columns = ('pk', 'name', 'label', 'type', 'speed', 'description', 'cable', 'connection', 'actions')
|
|
|
row_attrs = {
|
|
row_attrs = {
|
|
@@ -371,7 +386,7 @@ class DeviceConsoleServerPortTable(ConsoleServerPortTable):
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
-class PowerPortTable(DeviceComponentTable, PathEndpointTable):
|
|
|
|
|
|
|
+class PowerPortTable(ModularDeviceComponentTable, PathEndpointTable):
|
|
|
device = tables.Column(
|
|
device = tables.Column(
|
|
|
linkify={
|
|
linkify={
|
|
|
'viewname': 'dcim:device_powerports',
|
|
'viewname': 'dcim:device_powerports',
|
|
@@ -385,8 +400,8 @@ class PowerPortTable(DeviceComponentTable, PathEndpointTable):
|
|
|
class Meta(DeviceComponentTable.Meta):
|
|
class Meta(DeviceComponentTable.Meta):
|
|
|
model = PowerPort
|
|
model = PowerPort
|
|
|
fields = (
|
|
fields = (
|
|
|
- 'pk', 'id', 'name', 'device', 'label', 'type', 'description', 'mark_connected', 'maximum_draw',
|
|
|
|
|
- 'allocated_draw', 'cable', 'cable_color', 'link_peer', 'connection', 'tags',
|
|
|
|
|
|
|
+ 'pk', 'id', 'name', 'device', 'module_bay', 'module', 'label', 'type', 'description', 'mark_connected',
|
|
|
|
|
+ 'maximum_draw', 'allocated_draw', 'cable', 'cable_color', 'link_peer', 'connection', 'tags',
|
|
|
)
|
|
)
|
|
|
default_columns = ('pk', 'name', 'device', 'label', 'type', 'maximum_draw', 'allocated_draw', 'description')
|
|
default_columns = ('pk', 'name', 'device', 'label', 'type', 'maximum_draw', 'allocated_draw', 'description')
|
|
|
|
|
|
|
@@ -407,8 +422,8 @@ class DevicePowerPortTable(PowerPortTable):
|
|
|
class Meta(DeviceComponentTable.Meta):
|
|
class Meta(DeviceComponentTable.Meta):
|
|
|
model = PowerPort
|
|
model = PowerPort
|
|
|
fields = (
|
|
fields = (
|
|
|
- 'pk', 'id', 'name', 'label', 'type', 'maximum_draw', 'allocated_draw', 'description', 'mark_connected',
|
|
|
|
|
- 'cable', 'cable_color', 'link_peer', 'connection', 'tags', 'actions',
|
|
|
|
|
|
|
+ 'pk', 'id', 'name', 'module_bay', 'module', 'label', 'type', 'maximum_draw', 'allocated_draw',
|
|
|
|
|
+ 'description', 'mark_connected', 'cable', 'cable_color', 'link_peer', 'connection', 'tags', 'actions',
|
|
|
)
|
|
)
|
|
|
default_columns = (
|
|
default_columns = (
|
|
|
'pk', 'name', 'label', 'type', 'maximum_draw', 'allocated_draw', 'description', 'cable', 'connection',
|
|
'pk', 'name', 'label', 'type', 'maximum_draw', 'allocated_draw', 'description', 'cable', 'connection',
|
|
@@ -419,7 +434,7 @@ class DevicePowerPortTable(PowerPortTable):
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
-class PowerOutletTable(DeviceComponentTable, PathEndpointTable):
|
|
|
|
|
|
|
+class PowerOutletTable(ModularDeviceComponentTable, PathEndpointTable):
|
|
|
device = tables.Column(
|
|
device = tables.Column(
|
|
|
linkify={
|
|
linkify={
|
|
|
'viewname': 'dcim:device_poweroutlets',
|
|
'viewname': 'dcim:device_poweroutlets',
|
|
@@ -436,8 +451,8 @@ class PowerOutletTable(DeviceComponentTable, PathEndpointTable):
|
|
|
class Meta(DeviceComponentTable.Meta):
|
|
class Meta(DeviceComponentTable.Meta):
|
|
|
model = PowerOutlet
|
|
model = PowerOutlet
|
|
|
fields = (
|
|
fields = (
|
|
|
- 'pk', 'id', 'name', 'device', 'label', 'type', 'description', 'power_port', 'feed_leg', 'mark_connected',
|
|
|
|
|
- 'cable', 'cable_color', 'link_peer', 'connection', 'tags',
|
|
|
|
|
|
|
+ 'pk', 'id', 'name', 'device', 'module_bay', 'module', 'label', 'type', 'description', 'power_port',
|
|
|
|
|
+ 'feed_leg', 'mark_connected', 'cable', 'cable_color', 'link_peer', 'connection', 'tags',
|
|
|
)
|
|
)
|
|
|
default_columns = ('pk', 'name', 'device', 'label', 'type', 'power_port', 'feed_leg', 'description')
|
|
default_columns = ('pk', 'name', 'device', 'label', 'type', 'power_port', 'feed_leg', 'description')
|
|
|
|
|
|
|
@@ -457,8 +472,8 @@ class DevicePowerOutletTable(PowerOutletTable):
|
|
|
class Meta(DeviceComponentTable.Meta):
|
|
class Meta(DeviceComponentTable.Meta):
|
|
|
model = PowerOutlet
|
|
model = PowerOutlet
|
|
|
fields = (
|
|
fields = (
|
|
|
- 'pk', 'id', 'name', 'label', 'type', 'power_port', 'feed_leg', 'description', 'mark_connected', 'cable',
|
|
|
|
|
- 'cable_color', 'link_peer', 'connection', 'tags', 'actions',
|
|
|
|
|
|
|
+ 'pk', 'id', 'name', 'module_bay', 'module', 'label', 'type', 'power_port', 'feed_leg', 'description',
|
|
|
|
|
+ 'mark_connected', 'cable', 'cable_color', 'link_peer', 'connection', 'tags', 'actions',
|
|
|
)
|
|
)
|
|
|
default_columns = (
|
|
default_columns = (
|
|
|
'pk', 'name', 'label', 'type', 'power_port', 'feed_leg', 'description', 'cable', 'connection', 'actions',
|
|
'pk', 'name', 'label', 'type', 'power_port', 'feed_leg', 'description', 'cable', 'connection', 'actions',
|
|
@@ -489,7 +504,7 @@ class BaseInterfaceTable(BaseTable):
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
-class InterfaceTable(DeviceComponentTable, BaseInterfaceTable, PathEndpointTable):
|
|
|
|
|
|
|
+class InterfaceTable(ModularDeviceComponentTable, BaseInterfaceTable, PathEndpointTable):
|
|
|
device = tables.Column(
|
|
device = tables.Column(
|
|
|
linkify={
|
|
linkify={
|
|
|
'viewname': 'dcim:device_interfaces',
|
|
'viewname': 'dcim:device_interfaces',
|
|
@@ -512,10 +527,10 @@ class InterfaceTable(DeviceComponentTable, BaseInterfaceTable, PathEndpointTable
|
|
|
class Meta(DeviceComponentTable.Meta):
|
|
class Meta(DeviceComponentTable.Meta):
|
|
|
model = Interface
|
|
model = Interface
|
|
|
fields = (
|
|
fields = (
|
|
|
- 'pk', 'id', 'name', 'device', 'label', 'enabled', 'type', 'mgmt_only', 'mtu', 'mode', 'mac_address', 'wwn',
|
|
|
|
|
- 'rf_role', 'rf_channel', 'rf_channel_frequency', 'rf_channel_width', 'tx_power', 'description',
|
|
|
|
|
- 'mark_connected', 'cable', 'cable_color', 'wireless_link', 'wireless_lans', 'link_peer', 'connection',
|
|
|
|
|
- 'tags', 'ip_addresses', 'fhrp_groups', 'untagged_vlan', 'tagged_vlans',
|
|
|
|
|
|
|
+ 'pk', 'id', 'name', 'device', 'module_bay', 'module', 'label', 'enabled', 'type', 'mgmt_only', 'mtu',
|
|
|
|
|
+ 'mode', 'mac_address', 'wwn', 'rf_role', 'rf_channel', 'rf_channel_frequency', 'rf_channel_width',
|
|
|
|
|
+ 'tx_power', 'description', 'mark_connected', 'cable', 'cable_color', 'wireless_link', 'wireless_lans',
|
|
|
|
|
+ 'link_peer', 'connection', 'tags', 'ip_addresses', 'fhrp_groups', 'untagged_vlan', 'tagged_vlans',
|
|
|
)
|
|
)
|
|
|
default_columns = ('pk', 'name', 'device', 'label', 'enabled', 'type', 'description')
|
|
default_columns = ('pk', 'name', 'device', 'label', 'enabled', 'type', 'description')
|
|
|
|
|
|
|
@@ -547,10 +562,11 @@ class DeviceInterfaceTable(InterfaceTable):
|
|
|
class Meta(DeviceComponentTable.Meta):
|
|
class Meta(DeviceComponentTable.Meta):
|
|
|
model = Interface
|
|
model = Interface
|
|
|
fields = (
|
|
fields = (
|
|
|
- 'pk', 'id', 'name', 'label', 'enabled', 'type', 'parent', 'bridge', 'lag', 'mgmt_only', 'mtu', 'mode',
|
|
|
|
|
- 'mac_address', 'wwn', 'rf_role', 'rf_channel', 'rf_channel_frequency', 'rf_channel_width', 'tx_power',
|
|
|
|
|
- 'description', 'mark_connected', 'cable', 'cable_color', 'wireless_link', 'wireless_lans', 'link_peer',
|
|
|
|
|
- 'connection', 'tags', 'ip_addresses', 'fhrp_groups', 'untagged_vlan', 'tagged_vlans', 'actions',
|
|
|
|
|
|
|
+ 'pk', 'id', 'name', 'module_bay', 'module', 'label', 'enabled', 'type', 'parent', 'bridge', 'lag',
|
|
|
|
|
+ 'mgmt_only', 'mtu', 'mode', 'mac_address', 'wwn', 'rf_role', 'rf_channel', 'rf_channel_frequency',
|
|
|
|
|
+ 'rf_channel_width', 'tx_power', 'description', 'mark_connected', 'cable', 'cable_color', 'wireless_link',
|
|
|
|
|
+ 'wireless_lans', 'link_peer', 'connection', 'tags', 'ip_addresses', 'fhrp_groups', 'untagged_vlan',
|
|
|
|
|
+ 'tagged_vlans', 'actions',
|
|
|
)
|
|
)
|
|
|
order_by = ('name',)
|
|
order_by = ('name',)
|
|
|
default_columns = (
|
|
default_columns = (
|
|
@@ -564,7 +580,7 @@ class DeviceInterfaceTable(InterfaceTable):
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
-class FrontPortTable(DeviceComponentTable, CableTerminationTable):
|
|
|
|
|
|
|
+class FrontPortTable(ModularDeviceComponentTable, CableTerminationTable):
|
|
|
device = tables.Column(
|
|
device = tables.Column(
|
|
|
linkify={
|
|
linkify={
|
|
|
'viewname': 'dcim:device_frontports',
|
|
'viewname': 'dcim:device_frontports',
|
|
@@ -585,8 +601,8 @@ class FrontPortTable(DeviceComponentTable, CableTerminationTable):
|
|
|
class Meta(DeviceComponentTable.Meta):
|
|
class Meta(DeviceComponentTable.Meta):
|
|
|
model = FrontPort
|
|
model = FrontPort
|
|
|
fields = (
|
|
fields = (
|
|
|
- 'pk', 'id', 'name', 'device', 'label', 'type', 'color', 'rear_port', 'rear_port_position', 'description',
|
|
|
|
|
- 'mark_connected', 'cable', 'cable_color', 'link_peer', 'tags',
|
|
|
|
|
|
|
+ 'pk', 'id', 'name', 'device', 'module_bay', 'module', 'label', 'type', 'color', 'rear_port',
|
|
|
|
|
+ 'rear_port_position', 'description', 'mark_connected', 'cable', 'cable_color', 'link_peer', 'tags',
|
|
|
)
|
|
)
|
|
|
default_columns = (
|
|
default_columns = (
|
|
|
'pk', 'name', 'device', 'label', 'type', 'color', 'rear_port', 'rear_port_position', 'description',
|
|
'pk', 'name', 'device', 'label', 'type', 'color', 'rear_port', 'rear_port_position', 'description',
|
|
@@ -609,8 +625,8 @@ class DeviceFrontPortTable(FrontPortTable):
|
|
|
class Meta(DeviceComponentTable.Meta):
|
|
class Meta(DeviceComponentTable.Meta):
|
|
|
model = FrontPort
|
|
model = FrontPort
|
|
|
fields = (
|
|
fields = (
|
|
|
- 'pk', 'id', 'name', 'label', 'type', 'rear_port', 'rear_port_position', 'description', 'mark_connected', 'cable',
|
|
|
|
|
- 'cable_color', 'link_peer', 'tags', 'actions',
|
|
|
|
|
|
|
+ 'pk', 'id', 'name', 'module_bay', 'module', 'label', 'type', 'rear_port', 'rear_port_position',
|
|
|
|
|
+ 'description', 'mark_connected', 'cable', 'cable_color', 'link_peer', 'tags', 'actions',
|
|
|
)
|
|
)
|
|
|
default_columns = (
|
|
default_columns = (
|
|
|
'pk', 'name', 'label', 'type', 'rear_port', 'rear_port_position', 'description', 'cable', 'link_peer',
|
|
'pk', 'name', 'label', 'type', 'rear_port', 'rear_port_position', 'description', 'cable', 'link_peer',
|
|
@@ -621,7 +637,7 @@ class DeviceFrontPortTable(FrontPortTable):
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
-class RearPortTable(DeviceComponentTable, CableTerminationTable):
|
|
|
|
|
|
|
+class RearPortTable(ModularDeviceComponentTable, CableTerminationTable):
|
|
|
device = tables.Column(
|
|
device = tables.Column(
|
|
|
linkify={
|
|
linkify={
|
|
|
'viewname': 'dcim:device_rearports',
|
|
'viewname': 'dcim:device_rearports',
|
|
@@ -636,8 +652,8 @@ class RearPortTable(DeviceComponentTable, CableTerminationTable):
|
|
|
class Meta(DeviceComponentTable.Meta):
|
|
class Meta(DeviceComponentTable.Meta):
|
|
|
model = RearPort
|
|
model = RearPort
|
|
|
fields = (
|
|
fields = (
|
|
|
- 'pk', 'id', 'name', 'device', 'label', 'type', 'color', 'positions', 'description', 'mark_connected', 'cable',
|
|
|
|
|
- 'cable_color', 'link_peer', 'tags',
|
|
|
|
|
|
|
+ 'pk', 'id', 'name', 'device', 'module_bay', 'module', 'label', 'type', 'color', 'positions', 'description',
|
|
|
|
|
+ 'mark_connected', 'cable', 'cable_color', 'link_peer', 'tags',
|
|
|
)
|
|
)
|
|
|
default_columns = ('pk', 'name', 'device', 'label', 'type', 'color', 'description')
|
|
default_columns = ('pk', 'name', 'device', 'label', 'type', 'color', 'description')
|
|
|
|
|
|
|
@@ -658,8 +674,8 @@ class DeviceRearPortTable(RearPortTable):
|
|
|
class Meta(DeviceComponentTable.Meta):
|
|
class Meta(DeviceComponentTable.Meta):
|
|
|
model = RearPort
|
|
model = RearPort
|
|
|
fields = (
|
|
fields = (
|
|
|
- 'pk', 'id', 'name', 'label', 'type', 'positions', 'description', 'mark_connected', 'cable', 'cable_color',
|
|
|
|
|
- 'link_peer', 'tags', 'actions',
|
|
|
|
|
|
|
+ 'pk', 'id', 'name', 'module_bay', 'module', 'label', 'type', 'positions', 'description', 'mark_connected',
|
|
|
|
|
+ 'cable', 'cable_color', 'link_peer', 'tags', 'actions',
|
|
|
)
|
|
)
|
|
|
default_columns = (
|
|
default_columns = (
|
|
|
'pk', 'name', 'label', 'type', 'positions', 'description', 'cable', 'link_peer', 'actions',
|
|
'pk', 'name', 'label', 'type', 'positions', 'description', 'cable', 'link_peer', 'actions',
|
|
@@ -716,6 +732,40 @@ class DeviceDeviceBayTable(DeviceBayTable):
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+class ModuleBayTable(DeviceComponentTable):
|
|
|
|
|
+ device = tables.Column(
|
|
|
|
|
+ linkify={
|
|
|
|
|
+ 'viewname': 'dcim:device_modulebays',
|
|
|
|
|
+ 'args': [Accessor('device_id')],
|
|
|
|
|
+ }
|
|
|
|
|
+ )
|
|
|
|
|
+ installed_module = tables.Column(
|
|
|
|
|
+ linkify=True,
|
|
|
|
|
+ verbose_name='Installed module'
|
|
|
|
|
+ )
|
|
|
|
|
+ tags = TagColumn(
|
|
|
|
|
+ url_name='dcim:modulebay_list'
|
|
|
|
|
+ )
|
|
|
|
|
+
|
|
|
|
|
+ class Meta(DeviceComponentTable.Meta):
|
|
|
|
|
+ model = ModuleBay
|
|
|
|
|
+ fields = ('pk', 'id', 'name', 'device', 'label', 'position', 'installed_module', 'description', 'tags')
|
|
|
|
|
+ default_columns = ('pk', 'name', 'device', 'label', 'installed_module', 'description')
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+class DeviceModuleBayTable(ModuleBayTable):
|
|
|
|
|
+ actions = ButtonsColumn(
|
|
|
|
|
+ model=DeviceBay,
|
|
|
|
|
+ buttons=('edit', 'delete'),
|
|
|
|
|
+ prepend_template=MODULEBAY_BUTTONS
|
|
|
|
|
+ )
|
|
|
|
|
+
|
|
|
|
|
+ class Meta(DeviceComponentTable.Meta):
|
|
|
|
|
+ model = ModuleBay
|
|
|
|
|
+ fields = ('pk', 'id', 'name', 'label', 'description', 'installed_module', 'tags', 'actions')
|
|
|
|
|
+ default_columns = ('pk', 'name', 'label', 'description', 'installed_module', 'actions')
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
class InventoryItemTable(DeviceComponentTable):
|
|
class InventoryItemTable(DeviceComponentTable):
|
|
|
device = tables.Column(
|
|
device = tables.Column(
|
|
|
linkify={
|
|
linkify={
|