瀏覽代碼

Closes #4281: Allow filtering device component list views by type

Jeremy Stretch 6 年之前
父節點
當前提交
faf676e6e0
共有 2 個文件被更改,包括 36 次插入0 次删除
  1. 1 0
      docs/release-notes/version-2.7.md
  2. 35 0
      netbox/dcim/forms.py

+ 1 - 0
docs/release-notes/version-2.7.md

@@ -5,6 +5,7 @@
 ## Enhancements
 ## Enhancements
 
 
 * [#3949](https://github.com/netbox-community/netbox/issues/3949) - Revised the installation docs and upgrade script to employ a Python virtual environment
 * [#3949](https://github.com/netbox-community/netbox/issues/3949) - Revised the installation docs and upgrade script to employ a Python virtual environment
+* [#4281](https://github.com/netbox-community/netbox/issues/4281) - Allow filtering device component list views by type
 
 
 ## Bug Fixes
 ## Bug Fixes
 
 

+ 35 - 0
netbox/dcim/forms.py

@@ -2344,6 +2344,11 @@ class DeviceBulkAddInterfaceForm(DeviceBulkAddComponentForm):
 
 
 class ConsolePortFilterForm(DeviceComponentFilterForm):
 class ConsolePortFilterForm(DeviceComponentFilterForm):
     model = ConsolePort
     model = ConsolePort
+    type = forms.MultipleChoiceField(
+        choices=ConsolePortTypeChoices,
+        required=False,
+        widget=StaticSelect2Multiple()
+    )
     tag = TagFilterField(model)
     tag = TagFilterField(model)
 
 
 
 
@@ -2429,6 +2434,11 @@ class ConsolePortCSVForm(forms.ModelForm):
 
 
 class ConsoleServerPortFilterForm(DeviceComponentFilterForm):
 class ConsoleServerPortFilterForm(DeviceComponentFilterForm):
     model = ConsoleServerPort
     model = ConsoleServerPort
+    type = forms.MultipleChoiceField(
+        choices=ConsolePortTypeChoices,
+        required=False,
+        widget=StaticSelect2Multiple()
+    )
     tag = TagFilterField(model)
     tag = TagFilterField(model)
 
 
 
 
@@ -2528,6 +2538,11 @@ class ConsoleServerPortCSVForm(forms.ModelForm):
 
 
 class PowerPortFilterForm(DeviceComponentFilterForm):
 class PowerPortFilterForm(DeviceComponentFilterForm):
     model = PowerPort
     model = PowerPort
+    type = forms.MultipleChoiceField(
+        choices=PowerPortTypeChoices,
+        required=False,
+        widget=StaticSelect2Multiple()
+    )
     tag = TagFilterField(model)
     tag = TagFilterField(model)
 
 
 
 
@@ -2633,6 +2648,11 @@ class PowerPortCSVForm(forms.ModelForm):
 
 
 class PowerOutletFilterForm(DeviceComponentFilterForm):
 class PowerOutletFilterForm(DeviceComponentFilterForm):
     model = PowerOutlet
     model = PowerOutlet
+    type = forms.MultipleChoiceField(
+        choices=PowerOutletTypeChoices,
+        required=False,
+        widget=StaticSelect2Multiple()
+    )
     tag = TagFilterField(model)
     tag = TagFilterField(model)
 
 
 
 
@@ -2821,6 +2841,11 @@ class PowerOutletBulkDisconnectForm(ConfirmationForm):
 
 
 class InterfaceFilterForm(DeviceComponentFilterForm):
 class InterfaceFilterForm(DeviceComponentFilterForm):
     model = Interface
     model = Interface
+    type = forms.MultipleChoiceField(
+        choices=InterfaceTypeChoices,
+        required=False,
+        widget=StaticSelect2Multiple()
+    )
     enabled = forms.NullBooleanField(
     enabled = forms.NullBooleanField(
         required=False,
         required=False,
         widget=StaticSelect2(
         widget=StaticSelect2(
@@ -3190,6 +3215,11 @@ class InterfaceBulkDisconnectForm(ConfirmationForm):
 
 
 class FrontPortFilterForm(DeviceComponentFilterForm):
 class FrontPortFilterForm(DeviceComponentFilterForm):
     model = FrontPort
     model = FrontPort
+    type = forms.MultipleChoiceField(
+        choices=PortTypeChoices,
+        required=False,
+        widget=StaticSelect2Multiple()
+    )
     tag = TagFilterField(model)
     tag = TagFilterField(model)
 
 
 
 
@@ -3379,6 +3409,11 @@ class FrontPortBulkDisconnectForm(ConfirmationForm):
 
 
 class RearPortFilterForm(DeviceComponentFilterForm):
 class RearPortFilterForm(DeviceComponentFilterForm):
     model = RearPort
     model = RearPort
+    type = forms.MultipleChoiceField(
+        choices=PortTypeChoices,
+        required=False,
+        widget=StaticSelect2Multiple()
+    )
     tag = TagFilterField(model)
     tag = TagFilterField(model)