added filter on device status

This commit is contained in:
Mattijs Vanhaverbeke
2022-06-30 22:03:23 +02:00
parent 877d308574
commit d4833071df
2 changed files with 20 additions and 5 deletions
+7
View File
@@ -1,7 +1,9 @@
from cProfile import label
import django_filters
from django.db.models import Q
from dcim.models import Device, DeviceRole, Region, Site, Location
from dcim.choices import DeviceStatusChoices
from netbox.filtersets import NetBoxModelFilterSet
@@ -37,6 +39,11 @@ class DeviceFilterSet(TenancyFilterSet, NetBoxModelFilterSet):
lookup_expr='in',
label='Location (ID)',
)
status = django_filters.MultipleChoiceFilter(
choices=DeviceStatusChoices,
null_value=None
)
class Meta:
model = Device
+13 -5
View File
@@ -1,3 +1,4 @@
from cProfile import label
import imp
from django import forms
from django.conf import settings
@@ -7,11 +8,12 @@ from django.utils.translation import gettext as _
from dcim.models import Device, Site, Region, DeviceRole, Location
from django import forms
from dcim.choices import DeviceStatusChoices
from tenancy.models import TenantGroup, Tenant
from tenancy.forms import TenancyFilterForm
from django.conf import settings
from netbox.forms import NetBoxModelFilterSetForm
from utilities.forms import (TagFilterField, DynamicModelMultipleChoiceField)
from utilities.forms import (TagFilterField, DynamicModelMultipleChoiceField, MultipleChoiceField)
allow_coordinates_saving = settings.PLUGINS_CONFIG["netbox_topology_views"]["allow_coordinates_saving"]
end2end = settings.PLUGINS_CONFIG["netbox_topology_views"]["end2end_connections"]
@@ -24,7 +26,7 @@ class DeviceFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
(None, ('tenant_group_id', 'tenant_id')),
(None, ('region_id', 'site_id', 'location_id')),
(None, ('device_role_id', 'intermediate_dev_role_id')),
(None, ('tag',)),
(None, ('tag', 'status')),
)
region_id = DynamicModelMultipleChoiceField(
@@ -68,11 +70,17 @@ class DeviceFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
hide_unconnected = forms.BooleanField(
label=_("Hide Unconnected"),
required=False,
initial=False)
initial=False
)
save_coords = forms.BooleanField(
label=_("Save Coordinates"),
required=False,
disabled=(not allow_coordinates_saving),
initial=False)
initial=False
)
status = MultipleChoiceField(
choices=DeviceStatusChoices,
required=False,
label=_("Device Status")
)
tag = TagFilterField(model)