diff --git a/netbox/dcim/views.py b/netbox/dcim/views.py
index c0b46f16e1e..bc2cbdcb85a 100644
--- a/netbox/dcim/views.py
+++ b/netbox/dcim/views.py
@@ -342,6 +342,7 @@ def get_extra_context(self, request, instance):
'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 @@ def get_extra_context(self, request, instance):
'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 @@ def get_extra_context(self, request, instance):
).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 @@ def get_extra_context(self, request, instance):
'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 7f4da2f243e..d4cd588393d 100644
--- a/netbox/templates/dcim/inc/nonracked_devices.html
+++ b/netbox/templates/dcim/inc/nonracked_devices.html
@@ -1,40 +1,54 @@
{% load helpers %}
-
-
-{% if nonracked_devices %}
-
-
- | Name |
- Role |
- Type |
- Parent Device |
-
- {% for device in nonracked_devices %}
-
- |
- {{ device }}
- |
- {{ device.device_role }} |
- {{ device.device_type }} |
- {% if device.parent_bay %}
- {{ device.parent_bay.device|linkify }} |
- {{ device.parent_bay }} |
- {% else %}
- — |
+
+
+ {% if nonracked_devices %}
+
+
+ | Name |
+ Role |
+ Type |
+ Parent Device |
+
+ {% for device in nonracked_devices %}
+
+ |
+ {{ device }}
+ |
+ {{ device.device_role }} |
+ {{ device.device_type }} |
+ {% if device.parent_bay %}
+ {{ device.parent_bay.device|linkify }} |
+ {{ device.parent_bay }} |
+ {% else %}
+ — |
+ {% endif %}
+
+ {% endfor %}
+
+
+ {% 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' %}