diff --git a/netbox/circuits/filters.py b/netbox/circuits/filters.py index 0b51ae206..45cbed3a4 100644 --- a/netbox/circuits/filters.py +++ b/netbox/circuits/filters.py @@ -21,7 +21,7 @@ class ProviderFilter(CustomFieldFilterSet, django_filters.FilterSet): label='Site', ) site = django_filters.ModelMultipleChoiceFilter( - name='circuits__terminations__site', + name='circuits__terminations__site__slug', queryset=Site.objects.all(), to_field_name='slug', label='Site (slug)', @@ -29,7 +29,7 @@ class ProviderFilter(CustomFieldFilterSet, django_filters.FilterSet): class Meta: model = Provider - fields = ['q', 'name', 'account', 'asn'] + fields = ['name', 'account', 'asn'] def search(self, queryset, value): return queryset.filter( @@ -50,7 +50,7 @@ class CircuitFilter(CustomFieldFilterSet, django_filters.FilterSet): label='Provider (ID)', ) provider = django_filters.ModelMultipleChoiceFilter( - name='provider', + name='provider__slug', queryset=Provider.objects.all(), to_field_name='slug', label='Provider (slug)', @@ -61,7 +61,7 @@ class CircuitFilter(CustomFieldFilterSet, django_filters.FilterSet): label='Circuit type (ID)', ) type = django_filters.ModelMultipleChoiceFilter( - name='type', + name='type__slug', queryset=CircuitType.objects.all(), to_field_name='slug', label='Circuit type (slug)', @@ -83,7 +83,7 @@ class CircuitFilter(CustomFieldFilterSet, django_filters.FilterSet): label='Site (ID)', ) site = django_filters.ModelMultipleChoiceFilter( - name='terminations__site', + name='terminations__site__slug', queryset=Site.objects.all(), to_field_name='slug', label='Site (slug)', @@ -91,7 +91,7 @@ class CircuitFilter(CustomFieldFilterSet, django_filters.FilterSet): class Meta: model = Circuit - fields = ['q', 'provider_id', 'provider', 'type_id', 'type', 'install_date'] + fields = ['install_date'] def search(self, queryset, value): return queryset.filter( diff --git a/netbox/dcim/filters.py b/netbox/dcim/filters.py index b78124f3e..79024b605 100644 --- a/netbox/dcim/filters.py +++ b/netbox/dcim/filters.py @@ -50,7 +50,7 @@ class RackGroupFilter(django_filters.FilterSet): label='Site (ID)', ) site = django_filters.ModelMultipleChoiceFilter( - name='site', + name='site__slug', queryset=Site.objects.all(), to_field_name='slug', label='Site (slug)', @@ -58,7 +58,6 @@ class RackGroupFilter(django_filters.FilterSet): class Meta: model = RackGroup - fields = ['site_id', 'site'] class RackFilter(CustomFieldFilterSet, django_filters.FilterSet): @@ -72,7 +71,7 @@ class RackFilter(CustomFieldFilterSet, django_filters.FilterSet): label='Site (ID)', ) site = django_filters.ModelMultipleChoiceFilter( - name='site', + name='site__slug', queryset=Site.objects.all(), to_field_name='slug', label='Site (slug)', @@ -113,7 +112,7 @@ class RackFilter(CustomFieldFilterSet, django_filters.FilterSet): class Meta: model = Rack - fields = ['q', 'site_id', 'site', 'u_height'] + fields = ['u_height'] def search(self, queryset, value): return queryset.filter( @@ -134,7 +133,7 @@ class DeviceTypeFilter(CustomFieldFilterSet, django_filters.FilterSet): label='Manufacturer (ID)', ) manufacturer = django_filters.ModelMultipleChoiceFilter( - name='manufacturer', + name='manufacturer__slug', queryset=Manufacturer.objects.all(), to_field_name='slug', label='Manufacturer (slug)', @@ -142,8 +141,8 @@ class DeviceTypeFilter(CustomFieldFilterSet, django_filters.FilterSet): class Meta: model = DeviceType - fields = ['manufacturer_id', 'manufacturer', 'model', 'part_number', 'u_height', 'is_console_server', 'is_pdu', - 'is_network_device', 'subdevice_role'] + fields = ['model', 'part_number', 'u_height', 'is_console_server', 'is_pdu', 'is_network_device', + 'subdevice_role'] def search(self, queryset, value): return queryset.filter( @@ -169,7 +168,7 @@ class DeviceFilter(CustomFieldFilterSet, django_filters.FilterSet): label='Site (ID)', ) site = django_filters.ModelMultipleChoiceFilter( - name='rack__site', + name='rack__site__slug', queryset=Site.objects.all(), to_field_name='slug', label='Site name (slug)', @@ -190,7 +189,7 @@ class DeviceFilter(CustomFieldFilterSet, django_filters.FilterSet): label='Role (ID)', ) role = django_filters.ModelMultipleChoiceFilter( - name='device_role', + name='device_role__slug', queryset=DeviceRole.objects.all(), to_field_name='slug', label='Role (slug)', @@ -217,13 +216,13 @@ class DeviceFilter(CustomFieldFilterSet, django_filters.FilterSet): label='Manufacturer (ID)', ) manufacturer = django_filters.ModelMultipleChoiceFilter( - name='device_type__manufacturer', + name='device_type__manufacturer__slug', queryset=Manufacturer.objects.all(), to_field_name='slug', label='Manufacturer (slug)', ) model = django_filters.ModelMultipleChoiceFilter( - name='device_type', + name='device_type__slug', queryset=DeviceType.objects.all(), to_field_name='slug', label='Device model (slug)', @@ -258,9 +257,7 @@ class DeviceFilter(CustomFieldFilterSet, django_filters.FilterSet): class Meta: model = Device - fields = ['q', 'name', 'serial', 'asset_tag', 'site_id', 'site', 'rack_id', 'role_id', 'role', 'device_type_id', - 'manufacturer_id', 'manufacturer', 'model', 'platform_id', 'platform', 'status', 'is_console_server', - 'is_pdu', 'is_network_device'] + fields = ['name', 'serial', 'asset_tag'] def search(self, queryset, value): return queryset.filter( @@ -296,7 +293,7 @@ class ConsolePortFilter(django_filters.FilterSet): class Meta: model = ConsolePort - fields = ['device_id', 'device', 'name'] + fields = ['name'] class ConsoleServerPortFilter(django_filters.FilterSet): @@ -314,7 +311,7 @@ class ConsoleServerPortFilter(django_filters.FilterSet): class Meta: model = ConsoleServerPort - fields = ['device_id', 'device', 'name'] + fields = ['name'] class PowerPortFilter(django_filters.FilterSet): @@ -332,7 +329,7 @@ class PowerPortFilter(django_filters.FilterSet): class Meta: model = PowerPort - fields = ['device_id', 'device', 'name'] + fields = ['name'] class PowerOutletFilter(django_filters.FilterSet): @@ -350,7 +347,7 @@ class PowerOutletFilter(django_filters.FilterSet): class Meta: model = PowerOutlet - fields = ['device_id', 'device', 'name'] + fields = ['name'] class InterfaceFilter(django_filters.FilterSet): @@ -368,7 +365,7 @@ class InterfaceFilter(django_filters.FilterSet): class Meta: model = Interface - fields = ['device_id', 'device', 'name'] + fields = ['name'] class ConsoleConnectionFilter(django_filters.FilterSet): diff --git a/netbox/ipam/filters.py b/netbox/ipam/filters.py index 7193cb188..7b7b15eec 100644 --- a/netbox/ipam/filters.py +++ b/netbox/ipam/filters.py @@ -43,7 +43,7 @@ class VRFFilter(CustomFieldFilterSet, django_filters.FilterSet): class Meta: model = VRF - fields = ['name', 'rd'] + fields = ['rd'] class RIRFilter(django_filters.FilterSet): @@ -64,7 +64,7 @@ class AggregateFilter(CustomFieldFilterSet, django_filters.FilterSet): label='RIR (ID)', ) rir = django_filters.ModelMultipleChoiceFilter( - name='rir', + name='rir__slug', queryset=RIR.objects.all(), to_field_name='slug', label='RIR (slug)', @@ -72,7 +72,7 @@ class AggregateFilter(CustomFieldFilterSet, django_filters.FilterSet): class Meta: model = Aggregate - fields = ['family', 'rir_id', 'rir', 'date_added'] + fields = ['family', 'date_added'] def search(self, queryset, value): qs_filter = Q(description__icontains=value) @@ -149,7 +149,7 @@ class PrefixFilter(CustomFieldFilterSet, django_filters.FilterSet): class Meta: model = Prefix - fields = ['family', 'site_id', 'site', 'vlan_id', 'vlan_vid', 'status', 'role_id', 'role'] + fields = ['family', 'status'] def search(self, queryset, value): qs_filter = Q(description__icontains=value) @@ -226,7 +226,7 @@ class IPAddressFilter(CustomFieldFilterSet, django_filters.FilterSet): label='Device (ID)', ) device = django_filters.ModelMultipleChoiceFilter( - name='interface__device', + name='interface__device__name', queryset=Device.objects.all(), to_field_name='name', label='Device (name)', @@ -239,7 +239,7 @@ class IPAddressFilter(CustomFieldFilterSet, django_filters.FilterSet): class Meta: model = IPAddress - fields = ['q', 'family', 'status', 'device_id', 'device', 'interface_id'] + fields = ['q', 'family', 'status'] def search(self, queryset, value): qs_filter = Q(description__icontains=value) @@ -268,7 +268,7 @@ class VLANGroupFilter(django_filters.FilterSet): label='Site (ID)', ) site = django_filters.ModelMultipleChoiceFilter( - name='site', + name='site__slug', queryset=Site.objects.all(), to_field_name='slug', label='Site (slug)', @@ -276,7 +276,6 @@ class VLANGroupFilter(django_filters.FilterSet): class Meta: model = VLANGroup - fields = ['site_id', 'site'] class VLANFilter(CustomFieldFilterSet, django_filters.FilterSet): @@ -290,7 +289,7 @@ class VLANFilter(CustomFieldFilterSet, django_filters.FilterSet): label='Site (ID)', ) site = django_filters.ModelMultipleChoiceFilter( - name='site', + name='site__slug', queryset=Site.objects.all(), to_field_name='slug', label='Site (slug)', @@ -340,7 +339,7 @@ class VLANFilter(CustomFieldFilterSet, django_filters.FilterSet): class Meta: model = VLAN - fields = ['site_id', 'site', 'vid', 'name', 'status', 'role_id', 'role'] + fields = ['status'] def search(self, queryset, value): qs_filter = Q(name__icontains=value) | Q(description__icontains=value) @@ -352,7 +351,18 @@ class VLANFilter(CustomFieldFilterSet, django_filters.FilterSet): class ServiceFilter(django_filters.FilterSet): + device_id = django_filters.ModelMultipleChoiceFilter( + name='device', + queryset=Device.objects.all(), + label='Device (ID)', + ) + device = django_filters.ModelMultipleChoiceFilter( + name='device__name', + queryset=Device.objects.all(), + to_field_name='name', + label='Device (name)', + ) class Meta: model = Service - fields = ['device', 'name', 'protocol', 'port'] + fields = ['name', 'protocol', 'port'] diff --git a/netbox/secrets/filters.py b/netbox/secrets/filters.py index a821402cf..af6f62fbd 100644 --- a/netbox/secrets/filters.py +++ b/netbox/secrets/filters.py @@ -17,7 +17,7 @@ class SecretFilter(django_filters.FilterSet): label='Role (ID)', ) role = django_filters.ModelMultipleChoiceFilter( - name='role', + name='role__slug', queryset=SecretRole.objects.all(), to_field_name='slug', label='Role (slug)', @@ -31,7 +31,7 @@ class SecretFilter(django_filters.FilterSet): class Meta: model = Secret - fields = ['name', 'role_id', 'role', 'device'] + fields = ['name'] def search(self, queryset, value): return queryset.filter( diff --git a/requirements.txt b/requirements.txt index 326e5aebd..204deb345 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,7 +2,7 @@ cffi>=1.8 cryptography>=1.4 Django>=1.10 django-debug-toolbar>=1.6 -django-filter==0.13.0 +django-filter==0.15.3 django-rest-swagger==0.3.10 django-tables2==1.2.1 djangorestframework==3.4.3