Closes #2474: Add cabled and connection_status filters for device components

This commit is contained in:
Jeremy Stretch 2018-12-06 12:39:12 -05:00
parent 64d37cd450
commit 360303f86c
2 changed files with 41 additions and 5 deletions

View File

@ -42,6 +42,7 @@ NetBox now supports modeling physical cables for console, power, and interface c
## Changes From v2.5-beta2 ## Changes From v2.5-beta2
* [#2474](https://github.com/digitalocean/netbox/issues/2474) - Add `cabled` and `connection_status` filters for device components
* [#2616](https://github.com/digitalocean/netbox/issues/2616) - Convert Rack `outer_unit` and Cable `length_unit` to integer-based choice fields * [#2616](https://github.com/digitalocean/netbox/issues/2616) - Convert Rack `outer_unit` and Cable `length_unit` to integer-based choice fields
* [#2622](https://github.com/digitalocean/netbox/issues/2622) - Enable filtering cables by multiple types/colors * [#2622](https://github.com/digitalocean/netbox/issues/2622) - Enable filtering cables by multiple types/colors
* [#2624](https://github.com/digitalocean/netbox/issues/2624) - Delete associated content type and permissions when removing InterfaceConnection model * [#2624](https://github.com/digitalocean/netbox/issues/2624) - Delete associated content type and permissions when removing InterfaceConnection model

View File

@ -699,31 +699,51 @@ class DeviceComponentFilterSet(django_filters.FilterSet):
class ConsolePortFilter(DeviceComponentFilterSet): class ConsolePortFilter(DeviceComponentFilterSet):
cabled = django_filters.BooleanFilter(
field_name='cable',
lookup_expr='isnull',
exclude=True
)
class Meta: class Meta:
model = ConsolePort model = ConsolePort
fields = ['name'] fields = ['name', 'connection_status']
class ConsoleServerPortFilter(DeviceComponentFilterSet): class ConsoleServerPortFilter(DeviceComponentFilterSet):
cabled = django_filters.BooleanFilter(
field_name='cable',
lookup_expr='isnull',
exclude=True
)
class Meta: class Meta:
model = ConsoleServerPort model = ConsoleServerPort
fields = ['name'] fields = ['name', 'connection_status']
class PowerPortFilter(DeviceComponentFilterSet): class PowerPortFilter(DeviceComponentFilterSet):
cabled = django_filters.BooleanFilter(
field_name='cable',
lookup_expr='isnull',
exclude=True
)
class Meta: class Meta:
model = PowerPort model = PowerPort
fields = ['name'] fields = ['name', 'connection_status']
class PowerOutletFilter(DeviceComponentFilterSet): class PowerOutletFilter(DeviceComponentFilterSet):
cabled = django_filters.BooleanFilter(
field_name='cable',
lookup_expr='isnull',
exclude=True
)
class Meta: class Meta:
model = PowerOutlet model = PowerOutlet
fields = ['name'] fields = ['name', 'connection_status']
class InterfaceFilter(django_filters.FilterSet): class InterfaceFilter(django_filters.FilterSet):
@ -740,6 +760,11 @@ class InterfaceFilter(django_filters.FilterSet):
field_name='pk', field_name='pk',
label='Device (ID)', label='Device (ID)',
) )
cabled = django_filters.BooleanFilter(
field_name='cable',
lookup_expr='isnull',
exclude=True
)
type = django_filters.CharFilter( type = django_filters.CharFilter(
method='filter_type', method='filter_type',
label='Interface type', label='Interface type',
@ -765,7 +790,7 @@ class InterfaceFilter(django_filters.FilterSet):
class Meta: class Meta:
model = Interface model = Interface
fields = ['name', 'form_factor', 'enabled', 'mtu', 'mgmt_only'] fields = ['name', 'connection_status', 'form_factor', 'enabled', 'mtu', 'mgmt_only']
def filter_device(self, queryset, name, value): def filter_device(self, queryset, name, value):
try: try:
@ -814,6 +839,11 @@ class InterfaceFilter(django_filters.FilterSet):
class FrontPortFilter(DeviceComponentFilterSet): class FrontPortFilter(DeviceComponentFilterSet):
cabled = django_filters.BooleanFilter(
field_name='cable',
lookup_expr='isnull',
exclude=True
)
class Meta: class Meta:
model = FrontPort model = FrontPort
@ -821,6 +851,11 @@ class FrontPortFilter(DeviceComponentFilterSet):
class RearPortFilter(DeviceComponentFilterSet): class RearPortFilter(DeviceComponentFilterSet):
cabled = django_filters.BooleanFilter(
field_name='cable',
lookup_expr='isnull',
exclude=True
)
class Meta: class Meta:
model = RearPort model = RearPort