Просмотр исходного кода

Update VLAN member interface views to use ObjectChildrenView

jeremystretch 4 лет назад
Родитель
Сommit
c795068a78

+ 12 - 12
netbox/ipam/views.py

@@ -955,32 +955,32 @@ class VLANView(generic.ObjectView):
         }
 
 
-class VLANInterfacesView(generic.ObjectView):
+class VLANInterfacesView(generic.ObjectChildrenView):
     queryset = VLAN.objects.all()
+    child_model = Interface
+    table = tables.VLANDevicesTable
     template_name = 'ipam/vlan/interfaces.html'
 
-    def get_extra_context(self, request, instance):
-        interfaces = instance.get_interfaces().prefetch_related('device')
-        members_table = tables.VLANDevicesTable(interfaces)
-        paginate_table(members_table, request)
+    def get_children(self, request, parent):
+        return parent.get_interfaces().restrict(request.user, 'view')
 
+    def get_extra_context(self, request, instance):
         return {
-            'members_table': members_table,
             'active_tab': 'interfaces',
         }
 
 
-class VLANVMInterfacesView(generic.ObjectView):
+class VLANVMInterfacesView(generic.ObjectChildrenView):
     queryset = VLAN.objects.all()
+    child_model = VMInterface
+    table = tables.VLANVirtualMachinesTable
     template_name = 'ipam/vlan/vminterfaces.html'
 
-    def get_extra_context(self, request, instance):
-        interfaces = instance.get_vminterfaces().prefetch_related('virtual_machine')
-        members_table = tables.VLANVirtualMachinesTable(interfaces)
-        paginate_table(members_table, request)
+    def get_children(self, request, parent):
+        return parent.get_vminterfaces().restrict(request.user, 'view')
 
+    def get_extra_context(self, request, instance):
         return {
-            'members_table': members_table,
             'active_tab': 'vminterfaces',
         }
 

+ 1 - 1
netbox/templates/ipam/vlan/interfaces.html

@@ -3,7 +3,7 @@
 {% block content %}
   <div class="row">
     <div class="col col-md-12">
-      {% include 'utilities/obj_table.html' with table=members_table heading='Device Interfaces' parent=vlan %}
+      {% include 'utilities/obj_table.html' with heading='Device Interfaces' parent=vlan %}
     </div>
   </div>
 {% endblock %}

+ 1 - 1
netbox/templates/ipam/vlan/vminterfaces.html

@@ -3,7 +3,7 @@
 {% block content %}
   <div class="row">
     <div class="col col-md-12">
-      {% include 'utilities/obj_table.html' with table=members_table heading='Virtual Machine Interfaces' parent=vlan %}
+      {% include 'utilities/obj_table.html' with heading='Virtual Machine Interfaces' parent=vlan %}
     </div>
   </div>
 {% endblock %}