From 3d4d88011065a0d7f57a8675b4768c41bcbc7edd Mon Sep 17 00:00:00 2001 From: Arthur Date: Wed, 31 Aug 2022 14:42:59 -0700 Subject: [PATCH 1/3] #9665 Rack Elevation Sorting Enhancements --- netbox/dcim/views.py | 15 +++++++++++---- netbox/templates/dcim/rack_elevation_list.html | 13 ++++++++++--- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/netbox/dcim/views.py b/netbox/dcim/views.py index 39b2340e1..0f6e388ca 100644 --- a/netbox/dcim/views.py +++ b/netbox/dcim/views.py @@ -590,9 +590,16 @@ class RackElevationListView(generic.ObjectListView): total_count = racks.count() # Determine ordering - reverse = bool(request.GET.get('reverse', False)) - if reverse: - racks = racks.reverse() + sort = request.GET.get('sort', "name") + if sort: + if sort == 'name': + racks = racks.order_by('name') + elif sort == '-name': + racks = racks.order_by('-name') + elif sort == 'facility': + racks = racks.order_by('facility_id') + elif sort == '-facility': + racks = racks.order_by('-facility_id') # Pagination per_page = get_paginate_count(request) @@ -614,7 +621,7 @@ class RackElevationListView(generic.ObjectListView): 'paginator': paginator, 'page': page, 'total_count': total_count, - 'reverse': reverse, + 'sort': sort, '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..13953b4b1 100644 --- a/netbox/templates/dcim/rack_elevation_list.html +++ b/netbox/templates/dcim/rack_elevation_list.html @@ -18,9 +18,16 @@ Front Rear -
- Normal - Reversed +
From 43b3ce9ed13d86ef1cd496f5471222d7df3cdc4a Mon Sep 17 00:00:00 2001 From: Arthur Date: Thu, 1 Sep 2022 11:12:01 -0700 Subject: [PATCH 2/3] #9665 review changes --- netbox/dcim/views.py | 21 ++++++++++--------- .../templates/dcim/rack_elevation_list.html | 7 +++---- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/netbox/dcim/views.py b/netbox/dcim/views.py index 0f6e388ca..3637e5c5f 100644 --- a/netbox/dcim/views.py +++ b/netbox/dcim/views.py @@ -589,17 +589,17 @@ class RackElevationListView(generic.ObjectListView): racks = filtersets.RackFilterSet(request.GET, self.queryset).qs total_count = racks.count() - # Determine ordering + 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: - if sort == 'name': - racks = racks.order_by('name') - elif sort == '-name': - racks = racks.order_by('-name') - elif sort == 'facility': - racks = racks.order_by('facility_id') - elif sort == '-facility': - racks = racks.order_by('-facility_id') + if sort not in ORDERING_CHOICES: + sort = 'name' + + racks = racks.order_by(sort) # Pagination per_page = get_paginate_count(request) @@ -622,6 +622,7 @@ class RackElevationListView(generic.ObjectListView): 'page': page, 'total_count': total_count, 'sort': 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 13953b4b1..97f5055cf 100644 --- a/netbox/templates/dcim/rack_elevation_list.html +++ b/netbox/templates/dcim/rack_elevation_list.html @@ -23,10 +23,9 @@  Sort By ({{ sort }}) From 239b8d2e7c795613a552b4cd7acafdeeef84d7c6 Mon Sep 17 00:00:00 2001 From: Arthur Date: Thu, 1 Sep 2022 11:15:23 -0700 Subject: [PATCH 3/3] #9665 review changes --- netbox/dcim/views.py | 1 + netbox/templates/dcim/rack_elevation_list.html | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/netbox/dcim/views.py b/netbox/dcim/views.py index 3637e5c5f..6ee74377a 100644 --- a/netbox/dcim/views.py +++ b/netbox/dcim/views.py @@ -622,6 +622,7 @@ class RackElevationListView(generic.ObjectListView): 'page': page, 'total_count': total_count, '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 97f5055cf..ef22bd9b8 100644 --- a/netbox/templates/dcim/rack_elevation_list.html +++ b/netbox/templates/dcim/rack_elevation_list.html @@ -20,7 +20,7 @@