diff --git a/netbox/dcim/views.py b/netbox/dcim/views.py index 39b2340e1..6ee74377a 100644 --- a/netbox/dcim/views.py +++ b/netbox/dcim/views.py @@ -589,10 +589,17 @@ class RackElevationListView(generic.ObjectListView): racks = filtersets.RackFilterSet(request.GET, self.queryset).qs total_count = racks.count() - # Determine ordering - reverse = bool(request.GET.get('reverse', False)) - if reverse: - racks = racks.reverse() + ORDERING_CHOICES = { + 'name': 'Name (A-Z)', + '-name': 'Name (Z-A)', + 'facility_id': 'Facility ID (A-Z)', + '-facility_id': 'Facility ID (Z-A)', + } + sort = request.GET.get('sort', "name") + if sort not in ORDERING_CHOICES: + sort = 'name' + + racks = racks.order_by(sort) # Pagination per_page = get_paginate_count(request) @@ -614,7 +621,9 @@ class RackElevationListView(generic.ObjectListView): 'paginator': paginator, 'page': page, 'total_count': total_count, - 'reverse': reverse, + 'sort': sort, + 'sort_display_name': ORDERING_CHOICES[sort], + 'sort_choices': ORDERING_CHOICES, 'rack_face': rack_face, 'filter_form': forms.RackElevationFilterForm(request.GET), }) diff --git a/netbox/templates/dcim/rack_elevation_list.html b/netbox/templates/dcim/rack_elevation_list.html index 87a047900..ef22bd9b8 100644 --- a/netbox/templates/dcim/rack_elevation_list.html +++ b/netbox/templates/dcim/rack_elevation_list.html @@ -18,9 +18,15 @@ Front Rear -