Преглед изворни кода

Closes #1755: Toggle order in which rack elevations are displayed

Jeremy Stretch пре 5 година
родитељ
комит
df6ad680ce

+ 4 - 0
docs/release-notes/version-2.9.md

@@ -2,6 +2,10 @@
 
 ## v2.9.4 (FUTURE)
 
+### Enhancements
+
+* [#1755](https://github.com/netbox-community/netbox/issues/1755) - Toggle order in which rack elevations are displayed
+
 ### Bug Fixes
 
 * [#5050](https://github.com/netbox-community/netbox/issues/5050) - Fix potential failure on `0016_replicate_interfaces` schema migration from old release

+ 6 - 0
netbox/dcim/views.py

@@ -310,6 +310,11 @@ class RackElevationListView(ObjectListView):
         racks = filters.RackFilterSet(request.GET, self.queryset).qs
         total_count = racks.count()
 
+        # Determine ordering
+        reverse = bool(request.GET.get('reverse', False))
+        if reverse:
+            racks = racks.reverse()
+
         # Pagination
         per_page = request.GET.get('per_page', settings.PAGINATE_COUNT)
         page_number = request.GET.get('page', 1)
@@ -330,6 +335,7 @@ class RackElevationListView(ObjectListView):
             'paginator': paginator,
             'page': page,
             'total_count': total_count,
+            'reverse': reverse,
             'rack_face': rack_face,
             'filter_form': forms.RackElevationFilterForm(request.GET),
         })

+ 9 - 3
netbox/templates/dcim/rack_elevation_list.html

@@ -3,12 +3,18 @@
 {% load static %}
 
 {% block content %}
-<div class="btn-group pull-right noprint" role="group">
+<div class="btn-toolbar pull-right noprint" role="toolbar">
     <button class="btn btn-default toggle-images" selected="selected">
         <span class="glyphicon glyphicon-check" aria-hidden="true"></span> Show Images
     </button>
-    <a href="{% url 'dcim:rack_elevation_list' %}{% querystring request face='front' %}" class="btn btn-default{% if rack_face == 'front' %} active{% endif %}">Front</a>
-    <a href="{% url 'dcim:rack_elevation_list' %}{% querystring request face='rear' %}" class="btn btn-default{% if rack_face == 'rear' %} active{% endif %}">Rear</a>
+    <div class="btn-group" role="group">
+        <a href="{% url 'dcim:rack_elevation_list' %}{% querystring request face='front' %}" class="btn btn-default{% if rack_face == 'front' %} active{% endif %}">Front</a>
+        <a href="{% url 'dcim:rack_elevation_list' %}{% querystring request face='rear' %}" class="btn btn-default{% if rack_face == 'rear' %} active{% endif %}">Rear</a>
+    </div>
+    <div class="btn-group" role="group">
+        <a href="{% url 'dcim:rack_elevation_list' %}{% querystring request %}" class="btn btn-default{% if not reverse %} active{% endif %}">Normal</a>
+        <a href="{% url 'dcim:rack_elevation_list' %}{% querystring request reverse='true' %}" class="btn btn-default{% if reverse %} active{% endif %}">Reversed</a>
+    </div>
 </div>
 <h1>{% block title %}Rack Elevations{% endblock %}</h1>
 <div class="row">