From e635dc1fb3211dbf742eb3b414566605e63dd22b Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 2 Jul 2020 15:10:56 -0400 Subject: [PATCH] Arrange device components within tabs --- netbox/dcim/views.py | 20 +- netbox/templates/dcim/device.html | 895 ++++++++++-------- netbox/templates/dcim/inc/consoleport.html | 2 - .../dcim/inc/device_component_table.html | 40 + 4 files changed, 525 insertions(+), 432 deletions(-) create mode 100644 netbox/templates/dcim/inc/device_component_table.html diff --git a/netbox/dcim/views.py b/netbox/dcim/views.py index 2376e5430..889b4d94e 100644 --- a/netbox/dcim/views.py +++ b/netbox/dcim/views.py @@ -984,7 +984,7 @@ class DeviceView(ObjectView): vc_members = [] # Console ports - console_ports = ConsolePort.objects.restrict(request.user, 'view').filter(device=device).prefetch_related( + consoleports = ConsolePort.objects.restrict(request.user, 'view').filter(device=device).prefetch_related( 'connected_endpoint__device', 'cable', ) @@ -996,7 +996,7 @@ class DeviceView(ObjectView): ) # Power ports - power_ports = PowerPort.objects.restrict(request.user, 'view').filter(device=device).prefetch_related( + powerports = PowerPort.objects.restrict(request.user, 'view').filter(device=device).prefetch_related( '_connected_poweroutlet__device', 'cable', ) @@ -1014,15 +1014,15 @@ class DeviceView(ObjectView): ) # Front ports - front_ports = FrontPort.objects.restrict(request.user, 'view').filter(device=device).prefetch_related( + frontports = FrontPort.objects.restrict(request.user, 'view').filter(device=device).prefetch_related( 'rear_port', 'cable', ) # Rear ports - rear_ports = RearPort.objects.restrict(request.user, 'view').filter(device=device).prefetch_related('cable') + rearports = RearPort.objects.restrict(request.user, 'view').filter(device=device).prefetch_related('cable') # Device bays - device_bays = DeviceBay.objects.restrict(request.user, 'view').filter(device=device).prefetch_related( + devicebays = DeviceBay.objects.restrict(request.user, 'view').filter(device=device).prefetch_related( 'installed_device__device_type__manufacturer', ) @@ -1043,14 +1043,14 @@ class DeviceView(ObjectView): return render(request, 'dcim/device.html', { 'device': device, - 'console_ports': console_ports, + 'consoleports': consoleports, 'consoleserverports': consoleserverports, - 'power_ports': power_ports, + 'powerports': powerports, 'poweroutlets': poweroutlets, 'interfaces': interfaces, - 'device_bays': device_bays, - 'front_ports': front_ports, - 'rear_ports': rear_ports, + 'devicebays': devicebays, + 'frontports': frontports, + 'rearports': rearports, 'services': services, 'secrets': secrets, 'vc_members': vc_members, diff --git a/netbox/templates/dcim/device.html b/netbox/templates/dcim/device.html index 408d0d833..c1da53423 100644 --- a/netbox/templates/dcim/device.html +++ b/netbox/templates/dcim/device.html @@ -329,86 +329,6 @@ {% plugin_left_page device %}
- {% if console_ports %} -
- {% csrf_token %} -
-
- Console Ports -
- - {% for cp in console_ports %} - {% include 'dcim/inc/consoleport.html' %} - {% endfor %} -
- -
-
- {% endif %} - {% if power_ports %} -
- {% csrf_token %} -
-
- Power Ports -
- - {% for pp in power_ports %} - {% include 'dcim/inc/powerport.html' %} - {% endfor %} -
- -
-
- {% endif %} {% if power_ports and poweroutlets %}
@@ -554,355 +474,490 @@
- {% if device_bays or device.device_type.is_parent_device %} -
- {% csrf_token %} -
-
- Device Bays -
- - - - {% if perms.dcim.change_devicebay or perms.dcim.delete_devicebay %} - - {% endif %} - - - - - - - - - {% for devicebay in device_bays %} - {% include 'dcim/inc/devicebay.html' %} - {% empty %} + +
+
+ + {% csrf_token %} +
+
+ Interfaces +
+ +
+
+ +
+
+
NameStatusDescriptionInstalled Device
+ - + {% if perms.dcim.change_interface or perms.dcim.delete_interface %} + + {% endif %} + + + + + + + + - {% endfor %} - -
— No device bays defined —NameLAGDescriptionMTUModeCableConnection
- -
-
- {% endif %} - {% if interfaces %} -
- {% csrf_token %} -
-
- Interfaces -
- + + + {% for iface in interfaces %} + {% include 'dcim/inc/interface.html' %} + {% endfor %} + + + +
+ +
+
+
+ {% csrf_token %} +
+
+ Front Ports
-
- + + + + {% if perms.dcim.change_frontport or perms.dcim.delete_frontport %} + + {% endif %} + + + + + + + + + + + + {% for frontport in frontports %} + {% include 'dcim/inc/frontport.html' %} + {% endfor %} + +
NameTypeRear PortPositionDescriptionCableConnection
+
- - - - {% if perms.dcim.change_interface or perms.dcim.delete_interface %} - - {% endif %} - - - - - - - - - - - - {% for iface in interfaces %} - {% include 'dcim/inc/interface.html' %} - {% endfor %} - -
NameLAGDescriptionMTUModeCableConnection
- -
-
- {% endif %} - {% if consoleserverports %} -
- {% csrf_token %} -
-
- Console Server Ports + +
+
+
+ {% csrf_token %} +
+
+ Rear Ports +
+ + + + {% if perms.dcim.change_rearport or perms.dcim.delete_rearport %} + + {% endif %} + + + + + + + + + + + {% for rearport in rearports %} + {% include 'dcim/inc/rearport.html' %} + {% endfor %} + +
NameTypePositionsDescriptionCableConnection
+
- - - - {% if perms.dcim.change_consoleserverport or perms.dcim.delete_consoleserverport %} - - {% endif %} - + + +
+
+ {% csrf_token %} +
+
+ Console Ports +
+
Name
+ + + {% if perms.dcim.change_consoleport or perms.dcim.delete_consoleport %} + + {% endif %} + + + + + + + + + {% for cp in consoleports %} + {% include 'dcim/inc/consoleport.html' %} + {% endfor %} +
NameTypeDescriptionCableConnection
+ +
+ +
+
+
+ {% csrf_token %} +
+
+ Console Server Ports +
+ + + + {% if perms.dcim.change_consoleserverport or perms.dcim.delete_consoleserverport %} + + {% endif %} + + + + + + + + + + {% for csp in consoleserverports %} + {% include 'dcim/inc/consoleserverport.html' %} + {% endfor %} + +
NameTypeDescriptionCableConnection
+ +
+
+
+
+
+ {% csrf_token %} +
+
+ Power Ports +
+ + + + {% if perms.dcim.change_consoleport or perms.dcim.delete_consoleport %} + + {% endif %} + + + + + + + + + + {% for pp in powerports %} + {% include 'dcim/inc/powerport.html' %} + {% endfor %} +
NameTypeDrawDescriptionCableConnection
+ +
+
+
+
+
+ {% csrf_token %} +
+
+ Power Outlets +
+ + + + {% if perms.dcim.change_poweroutlet or perms.dcim.delete_poweroutlet %} + + {% endif %} + - - - - - - - - {% for csp in consoleserverports %} - {% include 'dcim/inc/consoleserverport.html' %} - {% endfor %} - -
Name TypeDescriptionCableConnection
- -
-
- {% endif %} - {% if poweroutlets %} -
- {% csrf_token %} -
-
- Power Outlets + +
+
+
+ {% csrf_token %} +
+
+ Device Bays +
+ + + + {% if perms.dcim.change_devicebay or perms.dcim.delete_devicebay %} + + {% endif %} + + + + + + + + + {% for devicebay in devicebays %} + {% include 'dcim/inc/devicebay.html' %} + {% empty %} + + + + {% endfor %} + +
NameStatusDescriptionInstalled Device
— No device bays defined —
+
- - - - {% if perms.dcim.change_poweroutlet or perms.dcim.delete_poweroutlet %} - - {% endif %} - - - - - - - - - - - {% for po in poweroutlets %} - {% include 'dcim/inc/poweroutlet.html' %} - {% endfor %} - -
NameTypeInput/LegDescriptionCableConnection
- -
- - {% endif %} - {% if front_ports %} -
- {% csrf_token %} -
-
- Front Ports -
- - - - {% if perms.dcim.change_frontport or perms.dcim.delete_frontport %} - - {% endif %} - - - - - - - - - - - - {% for frontport in front_ports %} - {% include 'dcim/inc/frontport.html' %} - {% endfor %} - -
NameTypeRear PortPositionDescriptionCableConnection
- -
-
- {% endif %} - {% if rear_ports %} -
- {% csrf_token %} -
-
- Rear Ports -
- - - - {% if perms.dcim.change_rearport or perms.dcim.delete_rearport %} - - {% endif %} - - - - - - - - - - - {% for rearport in rear_ports %} - {% include 'dcim/inc/rearport.html' %} - {% endfor %} - -
NameTypePositionsDescriptionCableConnection
- -
-
- {% endif %} + +
+
{% include 'inc/modal.html' with name='graphs' title='Graphs' %} diff --git a/netbox/templates/dcim/inc/consoleport.html b/netbox/templates/dcim/inc/consoleport.html index 61b4fe045..dc2111b8a 100644 --- a/netbox/templates/dcim/inc/consoleport.html +++ b/netbox/templates/dcim/inc/consoleport.html @@ -18,8 +18,6 @@ {% if cp.type %}{{ cp.get_type_display }}{% else %}—{% endif %} - - {# Description #} {{ cp.description }} diff --git a/netbox/templates/dcim/inc/device_component_table.html b/netbox/templates/dcim/inc/device_component_table.html new file mode 100644 index 000000000..a0bb8f82b --- /dev/null +++ b/netbox/templates/dcim/inc/device_component_table.html @@ -0,0 +1,40 @@ +{% load helpers %} +{% load perms %} +
+ {% csrf_token %} +
+
+ {{ title }} +
+ + {% for obj in components %} + {% include component_template %} + {% endfor %} +
+ +
+