Skip to content

Commit d483307

Browse files
committed
added filter on device status
1 parent 877d308 commit d483307

File tree

2 files changed

+20
-5
lines changed

2 files changed

+20
-5
lines changed

netbox_topology_views/filters.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1+
from cProfile import label
12
import django_filters
23
from django.db.models import Q
34

45
from dcim.models import Device, DeviceRole, Region, Site, Location
6+
from dcim.choices import DeviceStatusChoices
57

68
from netbox.filtersets import NetBoxModelFilterSet
79

@@ -37,6 +39,11 @@ class DeviceFilterSet(TenancyFilterSet, NetBoxModelFilterSet):
3739
lookup_expr='in',
3840
label='Location (ID)',
3941
)
42+
status = django_filters.MultipleChoiceFilter(
43+
choices=DeviceStatusChoices,
44+
null_value=None
45+
)
46+
4047

4148
class Meta:
4249
model = Device

netbox_topology_views/forms.py

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from cProfile import label
12
import imp
23
from django import forms
34
from django.conf import settings
@@ -7,11 +8,12 @@
78
from dcim.models import Device, Site, Region, DeviceRole, Location
89

910
from django import forms
11+
from dcim.choices import DeviceStatusChoices
1012
from tenancy.models import TenantGroup, Tenant
1113
from tenancy.forms import TenancyFilterForm
1214
from django.conf import settings
1315
from netbox.forms import NetBoxModelFilterSetForm
14-
from utilities.forms import (TagFilterField, DynamicModelMultipleChoiceField)
16+
from utilities.forms import (TagFilterField, DynamicModelMultipleChoiceField, MultipleChoiceField)
1517

1618
allow_coordinates_saving = settings.PLUGINS_CONFIG["netbox_topology_views"]["allow_coordinates_saving"]
1719
end2end = settings.PLUGINS_CONFIG["netbox_topology_views"]["end2end_connections"]
@@ -24,7 +26,7 @@ class DeviceFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
2426
(None, ('tenant_group_id', 'tenant_id')),
2527
(None, ('region_id', 'site_id', 'location_id')),
2628
(None, ('device_role_id', 'intermediate_dev_role_id')),
27-
(None, ('tag',)),
29+
(None, ('tag', 'status')),
2830
)
2931

3032
region_id = DynamicModelMultipleChoiceField(
@@ -68,11 +70,17 @@ class DeviceFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
6870
hide_unconnected = forms.BooleanField(
6971
label=_("Hide Unconnected"),
7072
required=False,
71-
initial=False)
72-
73+
initial=False
74+
)
7375
save_coords = forms.BooleanField(
7476
label=_("Save Coordinates"),
7577
required=False,
7678
disabled=(not allow_coordinates_saving),
77-
initial=False)
79+
initial=False
80+
)
81+
status = MultipleChoiceField(
82+
choices=DeviceStatusChoices,
83+
required=False,
84+
label=_("Device Status")
85+
)
7886
tag = TagFilterField(model)

0 commit comments

Comments
 (0)