Browse Source

Fixed Prefix list hierarchy

Jeremy Stretch 9 years ago
parent
commit
284256777f
2 changed files with 11 additions and 0 deletions
  1. 5 0
      netbox/ipam/views.py
  2. 6 0
      netbox/utilities/views.py

+ 5 - 0
netbox/ipam/views.py

@@ -328,6 +328,11 @@ class PrefixListView(ObjectListView):
     edit_table_permissions = ['ipam.change_prefix', 'ipam.delete_prefix']
     template_name = 'ipam/prefix_list.html'
 
+    def alter_queryset(self, request):
+        # Show only top-level prefixes by default
+        limit = None if request.GET.get('expand') else 0
+        return self.queryset.annotate_depth(limit=limit)
+
 
 def prefix(request, pk):
 

+ 6 - 0
netbox/utilities/views.py

@@ -52,6 +52,9 @@ class ObjectListView(View):
             except AttributeError:
                 pass
 
+        # Provide a hook to tweak the queryset based on the request immediately prior to rendering the object list
+        self.queryset = self.alter_queryset(request)
+
         # Construct the table based on the user's permissions
         if any([request.user.has_perm(perm) for perm in self.edit_table_permissions]):
             table = self.edit_table(self.queryset)
@@ -68,6 +71,9 @@ class ObjectListView(View):
             'export_templates': export_templates,
         })
 
+    def alter_queryset(self, request):
+        return self.queryset
+
 
 class BulkImportView(View):
     form = None