added filter on device status
This commit is contained in:
@@ -1,7 +1,9 @@
|
|||||||
|
from cProfile import label
|
||||||
import django_filters
|
import django_filters
|
||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
|
|
||||||
from dcim.models import Device, DeviceRole, Region, Site, Location
|
from dcim.models import Device, DeviceRole, Region, Site, Location
|
||||||
|
from dcim.choices import DeviceStatusChoices
|
||||||
|
|
||||||
from netbox.filtersets import NetBoxModelFilterSet
|
from netbox.filtersets import NetBoxModelFilterSet
|
||||||
|
|
||||||
@@ -37,6 +39,11 @@ class DeviceFilterSet(TenancyFilterSet, NetBoxModelFilterSet):
|
|||||||
lookup_expr='in',
|
lookup_expr='in',
|
||||||
label='Location (ID)',
|
label='Location (ID)',
|
||||||
)
|
)
|
||||||
|
status = django_filters.MultipleChoiceFilter(
|
||||||
|
choices=DeviceStatusChoices,
|
||||||
|
null_value=None
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Device
|
model = Device
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
from cProfile import label
|
||||||
import imp
|
import imp
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.conf import settings
|
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 dcim.models import Device, Site, Region, DeviceRole, Location
|
||||||
|
|
||||||
from django import forms
|
from django import forms
|
||||||
|
from dcim.choices import DeviceStatusChoices
|
||||||
from tenancy.models import TenantGroup, Tenant
|
from tenancy.models import TenantGroup, Tenant
|
||||||
from tenancy.forms import TenancyFilterForm
|
from tenancy.forms import TenancyFilterForm
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from netbox.forms import NetBoxModelFilterSetForm
|
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"]
|
allow_coordinates_saving = settings.PLUGINS_CONFIG["netbox_topology_views"]["allow_coordinates_saving"]
|
||||||
end2end = settings.PLUGINS_CONFIG["netbox_topology_views"]["end2end_connections"]
|
end2end = settings.PLUGINS_CONFIG["netbox_topology_views"]["end2end_connections"]
|
||||||
@@ -24,7 +26,7 @@ class DeviceFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
|
|||||||
(None, ('tenant_group_id', 'tenant_id')),
|
(None, ('tenant_group_id', 'tenant_id')),
|
||||||
(None, ('region_id', 'site_id', 'location_id')),
|
(None, ('region_id', 'site_id', 'location_id')),
|
||||||
(None, ('device_role_id', 'intermediate_dev_role_id')),
|
(None, ('device_role_id', 'intermediate_dev_role_id')),
|
||||||
(None, ('tag',)),
|
(None, ('tag', 'status')),
|
||||||
)
|
)
|
||||||
|
|
||||||
region_id = DynamicModelMultipleChoiceField(
|
region_id = DynamicModelMultipleChoiceField(
|
||||||
@@ -68,11 +70,17 @@ class DeviceFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
|
|||||||
hide_unconnected = forms.BooleanField(
|
hide_unconnected = forms.BooleanField(
|
||||||
label=_("Hide Unconnected"),
|
label=_("Hide Unconnected"),
|
||||||
required=False,
|
required=False,
|
||||||
initial=False)
|
initial=False
|
||||||
|
)
|
||||||
save_coords = forms.BooleanField(
|
save_coords = forms.BooleanField(
|
||||||
label=_("Save Coordinates"),
|
label=_("Save Coordinates"),
|
||||||
required=False,
|
required=False,
|
||||||
disabled=(not allow_coordinates_saving),
|
disabled=(not allow_coordinates_saving),
|
||||||
initial=False)
|
initial=False
|
||||||
|
)
|
||||||
|
status = MultipleChoiceField(
|
||||||
|
choices=DeviceStatusChoices,
|
||||||
|
required=False,
|
||||||
|
label=_("Device Status")
|
||||||
|
)
|
||||||
tag = TagFilterField(model)
|
tag = TagFilterField(model)
|
||||||
|
|||||||
Reference in New Issue
Block a user