Skip to content

Commit e6930d9

Browse files
committed
Closes #6161: Enable ordering of device component tables
1 parent 4e405ce commit e6930d9

File tree

3 files changed

+19
-18
lines changed

3 files changed

+19
-18
lines changed

docs/release-notes/version-2.11.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
### Enhancements
66

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

netbox/dcim/tables/devices.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,7 @@ class Meta(DeviceComponentTable.Meta):
291291
class DeviceConsolePortTable(ConsolePortTable):
292292
name = tables.TemplateColumn(
293293
template_code='<i class="mdi mdi-console"></i> <a href="{{ record.get_absolute_url }}">{{ value }}</a>',
294+
order_by=Accessor('_name'),
294295
attrs={'td': {'class': 'text-nowrap'}}
295296
)
296297
actions = ButtonsColumn(
@@ -335,6 +336,7 @@ class DeviceConsoleServerPortTable(ConsoleServerPortTable):
335336
name = tables.TemplateColumn(
336337
template_code='<i class="mdi mdi-console-network-outline"></i> '
337338
'<a href="{{ record.get_absolute_url }}">{{ value }}</a>',
339+
order_by=Accessor('_name'),
338340
attrs={'td': {'class': 'text-nowrap'}}
339341
)
340342
actions = ButtonsColumn(
@@ -379,6 +381,7 @@ class DevicePowerPortTable(PowerPortTable):
379381
name = tables.TemplateColumn(
380382
template_code='<i class="mdi mdi-power-plug-outline"></i> <a href="{{ record.get_absolute_url }}">'
381383
'{{ value }}</a>',
384+
order_by=Accessor('_name'),
382385
attrs={'td': {'class': 'text-nowrap'}}
383386
)
384387
actions = ButtonsColumn(
@@ -428,6 +431,7 @@ class Meta(DeviceComponentTable.Meta):
428431
class DevicePowerOutletTable(PowerOutletTable):
429432
name = tables.TemplateColumn(
430433
template_code='<i class="mdi mdi-power-socket"></i> <a href="{{ record.get_absolute_url }}">{{ value }}</a>',
434+
order_by=Accessor('_name'),
431435
attrs={'td': {'class': 'text-nowrap'}}
432436
)
433437
actions = ButtonsColumn(
@@ -492,6 +496,7 @@ class DeviceInterfaceTable(InterfaceTable):
492496
template_code='<i class="mdi mdi-{% if iface.mgmt_only %}wrench{% elif iface.is_lag %}drag-horizontal-variant'
493497
'{% elif iface.is_virtual %}circle{% elif iface.is_wireless %}wifi{% else %}ethernet'
494498
'{% endif %}"></i> <a href="{{ record.get_absolute_url }}">{{ value }}</a>',
499+
order_by=Accessor('_name'),
495500
attrs={'td': {'class': 'text-nowrap'}}
496501
)
497502
parent = tables.Column(
@@ -555,6 +560,7 @@ class DeviceFrontPortTable(FrontPortTable):
555560
name = tables.TemplateColumn(
556561
template_code='<i class="mdi mdi-square-rounded{% if not record.cable %}-outline{% endif %}"></i> '
557562
'<a href="{{ record.get_absolute_url }}">{{ value }}</a>',
563+
order_by=Accessor('_name'),
558564
attrs={'td': {'class': 'text-nowrap'}}
559565
)
560566
actions = ButtonsColumn(
@@ -602,6 +608,7 @@ class DeviceRearPortTable(RearPortTable):
602608
name = tables.TemplateColumn(
603609
template_code='<i class="mdi mdi-square-rounded{% if not record.cable %}-outline{% endif %}"></i> '
604610
'<a href="{{ record.get_absolute_url }}">{{ value }}</a>',
611+
order_by=Accessor('_name'),
605612
attrs={'td': {'class': 'text-nowrap'}}
606613
)
607614
actions = ButtonsColumn(
@@ -651,6 +658,7 @@ class DeviceDeviceBayTable(DeviceBayTable):
651658
name = tables.TemplateColumn(
652659
template_code='<i class="mdi mdi-circle{% if record.installed_device %}slice-8{% else %}outline{% endif %}'
653660
'"></i> <a href="{{ record.get_absolute_url }}">{{ value }}</a>',
661+
order_by=Accessor('_name'),
654662
attrs={'td': {'class': 'text-nowrap'}}
655663
)
656664
actions = ButtonsColumn(
@@ -698,6 +706,7 @@ class DeviceInventoryItemTable(InventoryItemTable):
698706
name = tables.TemplateColumn(
699707
template_code='<a href="{{ record.get_absolute_url }}" style="padding-left: {{ record.level }}0px">'
700708
'{{ value }}</a>',
709+
order_by=Accessor('_name'),
701710
attrs={'td': {'class': 'text-nowrap'}}
702711
)
703712
actions = ButtonsColumn(

netbox/dcim/views.py

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1319,8 +1319,7 @@ def get_extra_context(self, request, instance):
13191319
)
13201320
consoleport_table = tables.DeviceConsolePortTable(
13211321
data=consoleports,
1322-
user=request.user,
1323-
orderable=False
1322+
user=request.user
13241323
)
13251324
if request.user.has_perm('dcim.change_consoleport') or request.user.has_perm('dcim.delete_consoleport'):
13261325
consoleport_table.columns.show('pk')
@@ -1344,8 +1343,7 @@ def get_extra_context(self, request, instance):
13441343
)
13451344
consoleserverport_table = tables.DeviceConsoleServerPortTable(
13461345
data=consoleserverports,
1347-
user=request.user,
1348-
orderable=False
1346+
user=request.user
13491347
)
13501348
if request.user.has_perm('dcim.change_consoleserverport') or \
13511349
request.user.has_perm('dcim.delete_consoleserverport'):
@@ -1368,8 +1366,7 @@ def get_extra_context(self, request, instance):
13681366
)
13691367
powerport_table = tables.DevicePowerPortTable(
13701368
data=powerports,
1371-
user=request.user,
1372-
orderable=False
1369+
user=request.user
13731370
)
13741371
if request.user.has_perm('dcim.change_powerport') or request.user.has_perm('dcim.delete_powerport'):
13751372
powerport_table.columns.show('pk')
@@ -1391,8 +1388,7 @@ def get_extra_context(self, request, instance):
13911388
)
13921389
poweroutlet_table = tables.DevicePowerOutletTable(
13931390
data=poweroutlets,
1394-
user=request.user,
1395-
orderable=False
1391+
user=request.user
13961392
)
13971393
if request.user.has_perm('dcim.change_poweroutlet') or request.user.has_perm('dcim.delete_poweroutlet'):
13981394
poweroutlet_table.columns.show('pk')
@@ -1416,8 +1412,7 @@ def get_extra_context(self, request, instance):
14161412
)
14171413
interface_table = tables.DeviceInterfaceTable(
14181414
data=interfaces,
1419-
user=request.user,
1420-
orderable=False
1415+
user=request.user
14211416
)
14221417
if request.user.has_perm('dcim.change_interface') or request.user.has_perm('dcim.delete_interface'):
14231418
interface_table.columns.show('pk')
@@ -1439,8 +1434,7 @@ def get_extra_context(self, request, instance):
14391434
)
14401435
frontport_table = tables.DeviceFrontPortTable(
14411436
data=frontports,
1442-
user=request.user,
1443-
orderable=False
1437+
user=request.user
14441438
)
14451439
if request.user.has_perm('dcim.change_frontport') or request.user.has_perm('dcim.delete_frontport'):
14461440
frontport_table.columns.show('pk')
@@ -1460,8 +1454,7 @@ def get_extra_context(self, request, instance):
14601454
rearports = RearPort.objects.restrict(request.user, 'view').filter(device=instance).prefetch_related('cable')
14611455
rearport_table = tables.DeviceRearPortTable(
14621456
data=rearports,
1463-
user=request.user,
1464-
orderable=False
1457+
user=request.user
14651458
)
14661459
if request.user.has_perm('dcim.change_rearport') or request.user.has_perm('dcim.delete_rearport'):
14671460
rearport_table.columns.show('pk')
@@ -1483,8 +1476,7 @@ def get_extra_context(self, request, instance):
14831476
)
14841477
devicebay_table = tables.DeviceDeviceBayTable(
14851478
data=devicebays,
1486-
user=request.user,
1487-
orderable=False
1479+
user=request.user
14881480
)
14891481
if request.user.has_perm('dcim.change_devicebay') or request.user.has_perm('dcim.delete_devicebay'):
14901482
devicebay_table.columns.show('pk')
@@ -1506,8 +1498,7 @@ def get_extra_context(self, request, instance):
15061498
).prefetch_related('manufacturer')
15071499
inventoryitem_table = tables.DeviceInventoryItemTable(
15081500
data=inventoryitems,
1509-
user=request.user,
1510-
orderable=False
1501+
user=request.user
15111502
)
15121503
if request.user.has_perm('dcim.change_inventoryitem') or request.user.has_perm('dcim.delete_inventoryitem'):
15131504
inventoryitem_table.columns.show('pk')

0 commit comments

Comments
 (0)