Просмотр исходного кода

Closes #6161: Enable ordering of device component tables

jeremystretch 4 лет назад
Родитель
Сommit
e6930d9601
3 измененных файлов с 19 добавлено и 18 удалено
  1. 1 0
      docs/release-notes/version-2.11.md
  2. 9 0
      netbox/dcim/tables/devices.py
  3. 9 18
      netbox/dcim/views.py

+ 1 - 0
docs/release-notes/version-2.11.md

@@ -4,6 +4,7 @@
 
 ### Enhancements
 
+* [#6161](https://github.com/netbox-community/netbox/issues/6161) - Enable ordering of device component tables
 * [#6179](https://github.com/netbox-community/netbox/issues/6179) - Enable natural ordering for virtual machines
 * [#6189](https://github.com/netbox-community/netbox/issues/6189) - Add ability to search for locations by name or description
 * [#6190](https://github.com/netbox-community/netbox/issues/6190) - Allow filtering devices with no location assigned

+ 9 - 0
netbox/dcim/tables/devices.py

@@ -291,6 +291,7 @@ class ConsolePortTable(DeviceComponentTable, PathEndpointTable):
 class DeviceConsolePortTable(ConsolePortTable):
     name = tables.TemplateColumn(
         template_code='<i class="mdi mdi-console"></i> <a href="{{ record.get_absolute_url }}">{{ value }}</a>',
+        order_by=Accessor('_name'),
         attrs={'td': {'class': 'text-nowrap'}}
     )
     actions = ButtonsColumn(
@@ -335,6 +336,7 @@ class DeviceConsoleServerPortTable(ConsoleServerPortTable):
     name = tables.TemplateColumn(
         template_code='<i class="mdi mdi-console-network-outline"></i> '
                       '<a href="{{ record.get_absolute_url }}">{{ value }}</a>',
+        order_by=Accessor('_name'),
         attrs={'td': {'class': 'text-nowrap'}}
     )
     actions = ButtonsColumn(
@@ -379,6 +381,7 @@ class DevicePowerPortTable(PowerPortTable):
     name = tables.TemplateColumn(
         template_code='<i class="mdi mdi-power-plug-outline"></i> <a href="{{ record.get_absolute_url }}">'
                       '{{ value }}</a>',
+        order_by=Accessor('_name'),
         attrs={'td': {'class': 'text-nowrap'}}
     )
     actions = ButtonsColumn(
@@ -428,6 +431,7 @@ class PowerOutletTable(DeviceComponentTable, PathEndpointTable):
 class DevicePowerOutletTable(PowerOutletTable):
     name = tables.TemplateColumn(
         template_code='<i class="mdi mdi-power-socket"></i> <a href="{{ record.get_absolute_url }}">{{ value }}</a>',
+        order_by=Accessor('_name'),
         attrs={'td': {'class': 'text-nowrap'}}
     )
     actions = ButtonsColumn(
@@ -492,6 +496,7 @@ class DeviceInterfaceTable(InterfaceTable):
         template_code='<i class="mdi mdi-{% if iface.mgmt_only %}wrench{% elif iface.is_lag %}drag-horizontal-variant'
                       '{% elif iface.is_virtual %}circle{% elif iface.is_wireless %}wifi{% else %}ethernet'
                       '{% endif %}"></i> <a href="{{ record.get_absolute_url }}">{{ value }}</a>',
+        order_by=Accessor('_name'),
         attrs={'td': {'class': 'text-nowrap'}}
     )
     parent = tables.Column(
@@ -555,6 +560,7 @@ class DeviceFrontPortTable(FrontPortTable):
     name = tables.TemplateColumn(
         template_code='<i class="mdi mdi-square-rounded{% if not record.cable %}-outline{% endif %}"></i> '
                       '<a href="{{ record.get_absolute_url }}">{{ value }}</a>',
+        order_by=Accessor('_name'),
         attrs={'td': {'class': 'text-nowrap'}}
     )
     actions = ButtonsColumn(
@@ -602,6 +608,7 @@ class DeviceRearPortTable(RearPortTable):
     name = tables.TemplateColumn(
         template_code='<i class="mdi mdi-square-rounded{% if not record.cable %}-outline{% endif %}"></i> '
                       '<a href="{{ record.get_absolute_url }}">{{ value }}</a>',
+        order_by=Accessor('_name'),
         attrs={'td': {'class': 'text-nowrap'}}
     )
     actions = ButtonsColumn(
@@ -651,6 +658,7 @@ class DeviceDeviceBayTable(DeviceBayTable):
     name = tables.TemplateColumn(
         template_code='<i class="mdi mdi-circle{% if record.installed_device %}slice-8{% else %}outline{% endif %}'
                       '"></i> <a href="{{ record.get_absolute_url }}">{{ value }}</a>',
+        order_by=Accessor('_name'),
         attrs={'td': {'class': 'text-nowrap'}}
     )
     actions = ButtonsColumn(
@@ -698,6 +706,7 @@ class DeviceInventoryItemTable(InventoryItemTable):
     name = tables.TemplateColumn(
         template_code='<a href="{{ record.get_absolute_url }}" style="padding-left: {{ record.level }}0px">'
                       '{{ value }}</a>',
+        order_by=Accessor('_name'),
         attrs={'td': {'class': 'text-nowrap'}}
     )
     actions = ButtonsColumn(

+ 9 - 18
netbox/dcim/views.py

@@ -1319,8 +1319,7 @@ class DeviceConsolePortsView(generic.ObjectView):
         )
         consoleport_table = tables.DeviceConsolePortTable(
             data=consoleports,
-            user=request.user,
-            orderable=False
+            user=request.user
         )
         if request.user.has_perm('dcim.change_consoleport') or request.user.has_perm('dcim.delete_consoleport'):
             consoleport_table.columns.show('pk')
@@ -1344,8 +1343,7 @@ class DeviceConsoleServerPortsView(generic.ObjectView):
         )
         consoleserverport_table = tables.DeviceConsoleServerPortTable(
             data=consoleserverports,
-            user=request.user,
-            orderable=False
+            user=request.user
         )
         if request.user.has_perm('dcim.change_consoleserverport') or \
                 request.user.has_perm('dcim.delete_consoleserverport'):
@@ -1368,8 +1366,7 @@ class DevicePowerPortsView(generic.ObjectView):
         )
         powerport_table = tables.DevicePowerPortTable(
             data=powerports,
-            user=request.user,
-            orderable=False
+            user=request.user
         )
         if request.user.has_perm('dcim.change_powerport') or request.user.has_perm('dcim.delete_powerport'):
             powerport_table.columns.show('pk')
@@ -1391,8 +1388,7 @@ class DevicePowerOutletsView(generic.ObjectView):
         )
         poweroutlet_table = tables.DevicePowerOutletTable(
             data=poweroutlets,
-            user=request.user,
-            orderable=False
+            user=request.user
         )
         if request.user.has_perm('dcim.change_poweroutlet') or request.user.has_perm('dcim.delete_poweroutlet'):
             poweroutlet_table.columns.show('pk')
@@ -1416,8 +1412,7 @@ class DeviceInterfacesView(generic.ObjectView):
         )
         interface_table = tables.DeviceInterfaceTable(
             data=interfaces,
-            user=request.user,
-            orderable=False
+            user=request.user
         )
         if request.user.has_perm('dcim.change_interface') or request.user.has_perm('dcim.delete_interface'):
             interface_table.columns.show('pk')
@@ -1439,8 +1434,7 @@ class DeviceFrontPortsView(generic.ObjectView):
         )
         frontport_table = tables.DeviceFrontPortTable(
             data=frontports,
-            user=request.user,
-            orderable=False
+            user=request.user
         )
         if request.user.has_perm('dcim.change_frontport') or request.user.has_perm('dcim.delete_frontport'):
             frontport_table.columns.show('pk')
@@ -1460,8 +1454,7 @@ class DeviceRearPortsView(generic.ObjectView):
         rearports = RearPort.objects.restrict(request.user, 'view').filter(device=instance).prefetch_related('cable')
         rearport_table = tables.DeviceRearPortTable(
             data=rearports,
-            user=request.user,
-            orderable=False
+            user=request.user
         )
         if request.user.has_perm('dcim.change_rearport') or request.user.has_perm('dcim.delete_rearport'):
             rearport_table.columns.show('pk')
@@ -1483,8 +1476,7 @@ class DeviceDeviceBaysView(generic.ObjectView):
         )
         devicebay_table = tables.DeviceDeviceBayTable(
             data=devicebays,
-            user=request.user,
-            orderable=False
+            user=request.user
         )
         if request.user.has_perm('dcim.change_devicebay') or request.user.has_perm('dcim.delete_devicebay'):
             devicebay_table.columns.show('pk')
@@ -1506,8 +1498,7 @@ class DeviceInventoryView(generic.ObjectView):
         ).prefetch_related('manufacturer')
         inventoryitem_table = tables.DeviceInventoryItemTable(
             data=inventoryitems,
-            user=request.user,
-            orderable=False
+            user=request.user
         )
         if request.user.has_perm('dcim.change_inventoryitem') or request.user.has_perm('dcim.delete_inventoryitem'):
             inventoryitem_table.columns.show('pk')