diff --git a/netbox/dcim/views.py b/netbox/dcim/views.py index 0e68328ad..2622a1405 100644 --- a/netbox/dcim/views.py +++ b/netbox/dcim/views.py @@ -342,6 +342,7 @@ class SiteView(generic.ObjectView): 'device_count', cumulative=True ).restrict(request.user, 'view').filter(site=instance) + nonracked_devices = Device.objects.filter( site=instance, position__isnull=True, @@ -357,7 +358,8 @@ class SiteView(generic.ObjectView): 'stats': stats, 'locations': locations, 'asns': asns, - 'nonracked_devices': nonracked_devices, + 'nonracked_devices': nonracked_devices.order_by('-pk')[:10], + 'total_nonracked_devices_count': nonracked_devices.count(), } @@ -435,6 +437,7 @@ class LocationView(generic.ObjectView): ).filter(pk__in=location_ids).exclude(pk=instance.pk) child_locations_table = tables.LocationTable(child_locations) child_locations_table.configure(request) + nonracked_devices = Device.objects.filter( location=instance, position__isnull=True, @@ -445,7 +448,8 @@ class LocationView(generic.ObjectView): 'rack_count': rack_count, 'device_count': device_count, 'child_locations_table': child_locations_table, - 'nonracked_devices': nonracked_devices, + 'nonracked_devices': nonracked_devices.order_by('-pk')[:10], + 'total_nonracked_devices_count': nonracked_devices.count(), } diff --git a/netbox/templates/dcim/inc/nonracked_devices.html b/netbox/templates/dcim/inc/nonracked_devices.html index 7f4da2f24..d4cd58839 100644 --- a/netbox/templates/dcim/inc/nonracked_devices.html +++ b/netbox/templates/dcim/inc/nonracked_devices.html @@ -1,40 +1,54 @@ {% load helpers %}
-
- Non-Racked Devices -
-
-{% if nonracked_devices %} - - - - - - - - {% for device in nonracked_devices %} - - - - - {% if device.parent_bay %} - - - {% else %} - +
+ Non-Racked Devices +
+
+ {% if nonracked_devices %} +
NameRoleTypeParent Device
- {{ device }} - {{ device.device_role }}{{ device.device_type }}{{ device.parent_bay.device|linkify }}{{ device.parent_bay }}
+ + + + + + + {% for device in nonracked_devices %} + + + + + {% if device.parent_bay %} + + + {% else %} + + {% endif %} + + {% endfor %} +
NameRoleTypeParent Device
+ {{ device }} + {{ device.device_role }}{{ device.device_type }}{{ device.parent_bay.device|linkify }}{{ device.parent_bay }}
+ + {% if total_nonracked_devices_count > nonracked_devices.count %} + {% if object|meta:'verbose_name' == 'site' %} +
+ Displaying {{ nonracked_devices.count }} of {{ total_nonracked_devices_count }} devices (View full list) +
+ {% elif object|meta:'verbose_name' == 'location' %} +
+ Displaying {{ nonracked_devices.count }} of {{ total_nonracked_devices_count }} devices (View full list) +
{% endif %} - - {% endfor %} - + {% endif %} + {% else %}
None
{% endif %}
+ {% if perms.dcim.add_device %} {% if object|meta:'verbose_name' == 'rack' %}