|
@@ -208,8 +208,7 @@ class InterfaceFilter(django_filters.FilterSet):
|
|
|
to_field_name='name',
|
|
to_field_name='name',
|
|
|
label='Virtual machine',
|
|
label='Virtual machine',
|
|
|
)
|
|
)
|
|
|
- mac_address = django_filters.CharFilter(
|
|
|
|
|
- method='_mac_address',
|
|
|
|
|
|
|
+ mac_address = MultiValueMACAddressFilter(
|
|
|
label='MAC address',
|
|
label='MAC address',
|
|
|
)
|
|
)
|
|
|
|
|
|
|
@@ -217,16 +216,6 @@ class InterfaceFilter(django_filters.FilterSet):
|
|
|
model = Interface
|
|
model = Interface
|
|
|
fields = ['id', 'name', 'enabled', 'mtu']
|
|
fields = ['id', 'name', 'enabled', 'mtu']
|
|
|
|
|
|
|
|
- def _mac_address(self, queryset, name, value):
|
|
|
|
|
- value = value.strip()
|
|
|
|
|
- if not value:
|
|
|
|
|
- return queryset
|
|
|
|
|
- try:
|
|
|
|
|
- mac = EUI(value.strip())
|
|
|
|
|
- return queryset.filter(mac_address=mac)
|
|
|
|
|
- except AddrFormatError:
|
|
|
|
|
- return queryset.none()
|
|
|
|
|
-
|
|
|
|
|
def search(self, queryset, name, value):
|
|
def search(self, queryset, name, value):
|
|
|
if not value.strip():
|
|
if not value.strip():
|
|
|
return queryset
|
|
return queryset
|