瀏覽代碼

Add cluster and virtual machine filters to VM interfaces list

Jeremy Stretch 5 年之前
父節點
當前提交
013a2a35e0
共有 2 個文件被更改,包括 26 次插入0 次删除
  1. 11 0
      netbox/virtualization/filters.py
  2. 15 0
      netbox/virtualization/forms.py

+ 11 - 0
netbox/virtualization/filters.py

@@ -206,6 +206,17 @@ class VMInterfaceFilterSet(BaseFilterSet):
         method='search',
         label='Search',
     )
+    cluster_id = django_filters.ModelMultipleChoiceFilter(
+        field_name='virtual_machine__cluster',
+        queryset=Cluster.objects.unrestricted(),
+        label='Cluster (ID)',
+    )
+    cluster = django_filters.ModelMultipleChoiceFilter(
+        field_name='virtual_machine__cluster__name',
+        queryset=Cluster.objects.unrestricted(),
+        to_field_name='name',
+        label='Cluster',
+    )
     virtual_machine_id = django_filters.ModelMultipleChoiceFilter(
         field_name='virtual_machine',
         queryset=VirtualMachine.objects.unrestricted(),

+ 15 - 0
netbox/virtualization/forms.py

@@ -821,6 +821,21 @@ class VMInterfaceBulkRenameForm(BulkRenameForm):
 
 class VMInterfaceFilterForm(forms.Form):
     model = VMInterface
+    cluster_id = DynamicModelMultipleChoiceField(
+        queryset=Cluster.objects.all(),
+        required=False,
+        label='Cluster',
+        widget=APISelectMultiple(
+            filter_for={
+                'virtual_machine_id': 'cluster_id'
+            }
+        )
+    )
+    virtual_machine_id = DynamicModelMultipleChoiceField(
+        queryset=VirtualMachine.objects.all(),
+        required=False,
+        label='Virtual machine'
+    )
     enabled = forms.NullBooleanField(
         required=False,
         widget=StaticSelect2(