Fixes #844: Apply order_naturally() to API interfaces list

This commit is contained in:
Jeremy Stretch 2017-01-25 14:34:34 -05:00
parent fbfa3cf619
commit f3db914e9d
2 changed files with 6 additions and 5 deletions

View File

@ -6,7 +6,6 @@ from rest_framework.views import APIView
from django.conf import settings from django.conf import settings
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from django.db.models import Count
from django.http import Http404 from django.http import Http404
from django.shortcuts import get_object_or_404 from django.shortcuts import get_object_or_404
@ -332,7 +331,8 @@ class InterfaceListView(generics.ListAPIView):
def get_queryset(self): def get_queryset(self):
device = get_object_or_404(Device, pk=self.kwargs['pk']) device = get_object_or_404(Device, pk=self.kwargs['pk'])
queryset = Interface.objects.filter(device=device).select_related('connected_as_a', 'connected_as_b') queryset = Interface.objects.order_naturally(device.device_type.interface_ordering).filter(device=device)\
.select_related('connected_as_a', 'connected_as_b', 'circuit_termination')
# Filter by type (physical or virtual) # Filter by type (physical or virtual)
iface_type = self.request.query_params.get('type') iface_type = self.request.query_params.get('type')
@ -490,8 +490,8 @@ class RelatedConnectionsView(APIView):
response['power-ports'].append(data) response['power-ports'].append(data)
# Interface connections # Interface connections
interfaces = Interface.objects.filter(device=device).select_related('connected_as_a', 'connected_as_b', interfaces = Interface.objects.order_naturally(device.device_type.interface_ordering).filter(device=device)\
'circuit_termination') .select_related('connected_as_a', 'connected_as_b', 'circuit_termination')
for iface in interfaces: for iface in interfaces:
data = serializers.InterfaceDetailSerializer(instance=iface).data data = serializers.InterfaceDetailSerializer(instance=iface).data
del(data['device']) del(data['device'])

View File

@ -749,7 +749,8 @@ def device_inventory(request, pk):
def device_lldp_neighbors(request, pk): def device_lldp_neighbors(request, pk):
device = get_object_or_404(Device, pk=pk) device = get_object_or_404(Device, pk=pk)
interfaces = Interface.objects.filter(device=device).select_related('connected_as_a', 'connected_as_b') interfaces = Interface.objects.order_naturally(device.device_type.interface_ordering).filter(device=device)\
.select_related('connected_as_a', 'connected_as_b')
return render(request, 'dcim/device_lldp_neighbors.html', { return render(request, 'dcim/device_lldp_neighbors.html', {
'device': device, 'device': device,