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 960d4d5b5e
commit 45532211fb
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,