diff --git a/netbox/circuits/forms.py b/netbox/circuits/forms.py
index a1777bb16..4b9e949f8 100644
--- a/netbox/circuits/forms.py
+++ b/netbox/circuits/forms.py
@@ -62,6 +62,7 @@ class ProviderBulkEditForm(BootstrapMixin, CustomFieldBulkEditForm):
class ProviderFilterForm(BootstrapMixin, CustomFieldFilterForm):
model = Provider
+ q = forms.CharField(required=False, label='Search')
site = FilterChoiceField(queryset=Site.objects.all(), to_field_name='slug')
@@ -126,6 +127,7 @@ class CircuitBulkEditForm(BootstrapMixin, CustomFieldBulkEditForm):
class CircuitFilterForm(BootstrapMixin, CustomFieldFilterForm):
model = Circuit
+ q = forms.CharField(required=False, label='Search')
type = FilterChoiceField(queryset=CircuitType.objects.annotate(filter_count=Count('circuits')),
to_field_name='slug')
provider = FilterChoiceField(queryset=Provider.objects.annotate(filter_count=Count('circuits')),
diff --git a/netbox/dcim/forms.py b/netbox/dcim/forms.py
index 95fb83892..9f6c7bde6 100644
--- a/netbox/dcim/forms.py
+++ b/netbox/dcim/forms.py
@@ -101,6 +101,7 @@ class SiteBulkEditForm(BootstrapMixin, CustomFieldBulkEditForm):
class SiteFilterForm(BootstrapMixin, CustomFieldFilterForm):
model = Site
+ q = forms.CharField(required=False, label='Search')
tenant = FilterChoiceField(queryset=Tenant.objects.annotate(filter_count=Count('sites')), to_field_name='slug',
null_option=(0, 'None'))
@@ -232,6 +233,7 @@ class RackBulkEditForm(BootstrapMixin, CustomFieldBulkEditForm):
class RackFilterForm(BootstrapMixin, CustomFieldFilterForm):
model = Rack
+ q = forms.CharField(required=False, label='Search')
site = FilterChoiceField(queryset=Site.objects.annotate(filter_count=Count('racks')), to_field_name='slug')
group_id = FilterChoiceField(queryset=RackGroup.objects.select_related('site')
.annotate(filter_count=Count('racks')), label='Rack group', null_option=(0, 'None'))
@@ -281,6 +283,7 @@ class DeviceTypeBulkEditForm(BootstrapMixin, CustomFieldBulkEditForm):
class DeviceTypeFilterForm(BootstrapMixin, CustomFieldFilterForm):
model = DeviceType
+ q = forms.CharField(required=False, label='Search')
manufacturer = FilterChoiceField(queryset=Manufacturer.objects.annotate(filter_count=Count('device_types')),
to_field_name='slug')
@@ -639,6 +642,7 @@ class DeviceBulkEditForm(BootstrapMixin, CustomFieldBulkEditForm):
class DeviceFilterForm(BootstrapMixin, CustomFieldFilterForm):
model = Device
+ q = forms.CharField(required=False, label='Search')
site = FilterChoiceField(
queryset=Site.objects.annotate(filter_count=Count('racks__devices')),
to_field_name='slug',
diff --git a/netbox/ipam/forms.py b/netbox/ipam/forms.py
index 2f6f0af84..4b9d8ddf5 100644
--- a/netbox/ipam/forms.py
+++ b/netbox/ipam/forms.py
@@ -63,6 +63,7 @@ class VRFBulkEditForm(BootstrapMixin, CustomFieldBulkEditForm):
class VRFFilterForm(BootstrapMixin, CustomFieldFilterForm):
model = VRF
+ q = forms.CharField(required=False, label='Search')
tenant = FilterChoiceField(queryset=Tenant.objects.annotate(filter_count=Count('vrfs')), to_field_name='slug',
null_option=(0, None))
@@ -128,6 +129,7 @@ class AggregateBulkEditForm(BootstrapMixin, CustomFieldBulkEditForm):
class AggregateFilterForm(BootstrapMixin, CustomFieldFilterForm):
model = Aggregate
+ q = forms.CharField(required=False, label='Search')
family = forms.ChoiceField(required=False, choices=IP_FAMILY_CHOICES, label='Address Family')
rir = FilterChoiceField(queryset=RIR.objects.annotate(filter_count=Count('aggregates')), to_field_name='slug',
label='RIR')
@@ -256,8 +258,9 @@ def prefix_status_choices():
class PrefixFilterForm(BootstrapMixin, CustomFieldFilterForm):
model = Prefix
- parent = forms.CharField(required=False, label='Search Within', widget=forms.TextInput(attrs={
- 'placeholder': 'Network',
+ q = forms.CharField(required=False, label='Search')
+ parent = forms.CharField(required=False, label='Parent Prefix', widget=forms.TextInput(attrs={
+ 'placeholder': 'Prefix',
}))
family = forms.ChoiceField(required=False, choices=IP_FAMILY_CHOICES, label='Address Family')
vrf = FilterChoiceField(queryset=VRF.objects.annotate(filter_count=Count('prefixes')), to_field_name='rd',
@@ -446,7 +449,8 @@ def ipaddress_status_choices():
class IPAddressFilterForm(BootstrapMixin, CustomFieldFilterForm):
model = IPAddress
- parent = forms.CharField(required=False, label='Search Within', widget=forms.TextInput(attrs={
+ q = forms.CharField(required=False, label='Search')
+ parent = forms.CharField(required=False, label='Parent Prefix', widget=forms.TextInput(attrs={
'placeholder': 'Prefix',
}))
family = forms.ChoiceField(required=False, choices=IP_FAMILY_CHOICES, label='Address Family')
@@ -560,6 +564,7 @@ def vlan_status_choices():
class VLANFilterForm(BootstrapMixin, CustomFieldFilterForm):
model = VLAN
+ q = forms.CharField(required=False, label='Search')
site = FilterChoiceField(queryset=Site.objects.annotate(filter_count=Count('vlans')), to_field_name='slug')
group_id = FilterChoiceField(queryset=VLANGroup.objects.annotate(filter_count=Count('vlans')), label='VLAN group',
null_option=(0, 'None'))
diff --git a/netbox/secrets/forms.py b/netbox/secrets/forms.py
index 8012e2c55..b4c64b485 100644
--- a/netbox/secrets/forms.py
+++ b/netbox/secrets/forms.py
@@ -100,6 +100,7 @@ class SecretBulkEditForm(BootstrapMixin, BulkEditForm):
class SecretFilterForm(BootstrapMixin, forms.Form):
+ q = forms.CharField(required=False, label='Search')
role = FilterChoiceField(queryset=SecretRole.objects.annotate(filter_count=Count('secrets')), to_field_name='slug')
diff --git a/netbox/templates/circuits/circuit_list.html b/netbox/templates/circuits/circuit_list.html
index db6861b2e..63ee92f2d 100644
--- a/netbox/templates/circuits/circuit_list.html
+++ b/netbox/templates/circuits/circuit_list.html
@@ -24,7 +24,6 @@
{% include 'inc/search_panel.html' %}
- {% include 'inc/filter_panel.html' %}
{% endblock %}
diff --git a/netbox/templates/circuits/provider_list.html b/netbox/templates/circuits/provider_list.html
index ca3dbfc09..36438d66b 100644
--- a/netbox/templates/circuits/provider_list.html
+++ b/netbox/templates/circuits/provider_list.html
@@ -23,7 +23,6 @@
{% include 'inc/search_panel.html' %}
- {% include 'inc/filter_panel.html' %}
{% endblock %}
diff --git a/netbox/templates/dcim/console_connections_list.html b/netbox/templates/dcim/console_connections_list.html
index eb9531069..68b57dc27 100644
--- a/netbox/templates/dcim/console_connections_list.html
+++ b/netbox/templates/dcim/console_connections_list.html
@@ -19,7 +19,7 @@
{% render_table table 'table.html' %}
- {% include 'inc/filter_panel.html' %}
+ {% include 'inc/search_panel.html' %}
{% endblock %}
diff --git a/netbox/templates/dcim/device_list.html b/netbox/templates/dcim/device_list.html
index b543154ec..7b0984a69 100644
--- a/netbox/templates/dcim/device_list.html
+++ b/netbox/templates/dcim/device_list.html
@@ -24,7 +24,6 @@
{% include 'inc/search_panel.html' %}
- {% include 'inc/filter_panel.html' %}
{% endblock %}
diff --git a/netbox/templates/dcim/devicetype_list.html b/netbox/templates/dcim/devicetype_list.html
index b8ce0e719..5ab97a481 100644
--- a/netbox/templates/dcim/devicetype_list.html
+++ b/netbox/templates/dcim/devicetype_list.html
@@ -19,7 +19,6 @@
{% include 'inc/search_panel.html' %}
- {% include 'inc/filter_panel.html' %}
{% endblock %}
diff --git a/netbox/templates/dcim/interface_connections_list.html b/netbox/templates/dcim/interface_connections_list.html
index 56011af1d..23c7b8a9a 100644
--- a/netbox/templates/dcim/interface_connections_list.html
+++ b/netbox/templates/dcim/interface_connections_list.html
@@ -19,7 +19,7 @@
{% render_table table 'table.html' %}
- {% include 'inc/filter_panel.html' %}
+ {% include 'inc/search_panel.html' %}
{% endblock %}
diff --git a/netbox/templates/dcim/power_connections_list.html b/netbox/templates/dcim/power_connections_list.html
index 55c9e2ce5..1b6528d86 100644
--- a/netbox/templates/dcim/power_connections_list.html
+++ b/netbox/templates/dcim/power_connections_list.html
@@ -19,7 +19,7 @@
{% render_table table 'table.html' %}
- {% include 'inc/filter_panel.html' %}
+ {% include 'inc/search_panel.html' %}
{% endblock %}
diff --git a/netbox/templates/dcim/rack_list.html b/netbox/templates/dcim/rack_list.html
index 10ee4ff04..fa5371f6f 100644
--- a/netbox/templates/dcim/rack_list.html
+++ b/netbox/templates/dcim/rack_list.html
@@ -24,7 +24,6 @@
{% include 'inc/search_panel.html' %}
- {% include 'inc/filter_panel.html' %}
{% endblock %}
diff --git a/netbox/templates/dcim/rackgroup_list.html b/netbox/templates/dcim/rackgroup_list.html
index 7b9b0677d..dee6472fb 100644
--- a/netbox/templates/dcim/rackgroup_list.html
+++ b/netbox/templates/dcim/rackgroup_list.html
@@ -18,7 +18,7 @@
{% include 'utilities/obj_table.html' with bulk_delete_url='dcim:rackgroup_bulk_delete' %}
- {% include 'inc/filter_panel.html' %}
+ {% include 'inc/search_panel.html' %}
{% endblock %}
diff --git a/netbox/templates/dcim/site_list.html b/netbox/templates/dcim/site_list.html
index 45169afe6..895f90804 100644
--- a/netbox/templates/dcim/site_list.html
+++ b/netbox/templates/dcim/site_list.html
@@ -23,7 +23,6 @@
{% include 'inc/search_panel.html' %}
- {% include 'inc/filter_panel.html' %}
{% endblock %}
diff --git a/netbox/templates/inc/filter_panel.html b/netbox/templates/inc/filter_panel.html
deleted file mode 100644
index cde76a21c..000000000
--- a/netbox/templates/inc/filter_panel.html
+++ /dev/null
@@ -1,32 +0,0 @@
-{% load form_helpers %}
-
-{% if filter_form %}
-
-{% endif %}
diff --git a/netbox/templates/inc/search_panel.html b/netbox/templates/inc/search_panel.html
index 692ef3fd2..c49b60ac4 100644
--- a/netbox/templates/inc/search_panel.html
+++ b/netbox/templates/inc/search_panel.html
@@ -1,18 +1,39 @@
+{% load form_helpers %}
+
diff --git a/netbox/templates/ipam/aggregate_list.html b/netbox/templates/ipam/aggregate_list.html
index aef7d84c1..f43274876 100644
--- a/netbox/templates/ipam/aggregate_list.html
+++ b/netbox/templates/ipam/aggregate_list.html
@@ -27,7 +27,6 @@
{% include 'inc/search_panel.html' %}
- {% include 'inc/filter_panel.html' %}
{% endblock %}
diff --git a/netbox/templates/ipam/ipaddress_list.html b/netbox/templates/ipam/ipaddress_list.html
index 52391a2b4..bb442c824 100644
--- a/netbox/templates/ipam/ipaddress_list.html
+++ b/netbox/templates/ipam/ipaddress_list.html
@@ -25,7 +25,6 @@
{% include 'inc/search_panel.html' %}
- {% include 'inc/filter_panel.html' %}
{% endblock %}
diff --git a/netbox/templates/ipam/prefix_list.html b/netbox/templates/ipam/prefix_list.html
index df790f9c6..10631ae27 100644
--- a/netbox/templates/ipam/prefix_list.html
+++ b/netbox/templates/ipam/prefix_list.html
@@ -34,7 +34,6 @@
{% include 'inc/search_panel.html' %}
- {% include 'inc/filter_panel.html' %}
{% endblock %}
diff --git a/netbox/templates/ipam/rir_list.html b/netbox/templates/ipam/rir_list.html
index 4d71431a2..33bef6d99 100644
--- a/netbox/templates/ipam/rir_list.html
+++ b/netbox/templates/ipam/rir_list.html
@@ -33,7 +33,7 @@
{% endif %}
- {% include 'inc/filter_panel.html' %}
+ {% include 'inc/search_panel.html' %}
{% endblock %}
diff --git a/netbox/templates/ipam/vlan_list.html b/netbox/templates/ipam/vlan_list.html
index 78ad140ff..2db914721 100644
--- a/netbox/templates/ipam/vlan_list.html
+++ b/netbox/templates/ipam/vlan_list.html
@@ -25,7 +25,6 @@
{% include 'inc/search_panel.html' %}
- {% include 'inc/filter_panel.html' %}
{% endblock %}
diff --git a/netbox/templates/ipam/vlangroup_list.html b/netbox/templates/ipam/vlangroup_list.html
index 1c8f92387..b6e1d4579 100644
--- a/netbox/templates/ipam/vlangroup_list.html
+++ b/netbox/templates/ipam/vlangroup_list.html
@@ -18,7 +18,7 @@
{% include 'utilities/obj_table.html' with bulk_delete_url='ipam:vlangroup_bulk_delete' %}
- {% include 'inc/filter_panel.html' %}
+ {% include 'inc/search_panel.html' %}
{% endblock %}
diff --git a/netbox/templates/ipam/vrf_list.html b/netbox/templates/ipam/vrf_list.html
index e5506bfaa..12f0b6bc3 100644
--- a/netbox/templates/ipam/vrf_list.html
+++ b/netbox/templates/ipam/vrf_list.html
@@ -25,7 +25,6 @@
{% include 'inc/search_panel.html' %}
- {% include 'inc/filter_panel.html' %}
{% endblock %}
diff --git a/netbox/templates/secrets/secret_list.html b/netbox/templates/secrets/secret_list.html
index 70bdcf1f1..29657d3f3 100644
--- a/netbox/templates/secrets/secret_list.html
+++ b/netbox/templates/secrets/secret_list.html
@@ -19,7 +19,6 @@
{% include 'inc/search_panel.html' %}
- {% include 'inc/filter_panel.html' %}
{% endblock %}
diff --git a/netbox/templates/tenancy/tenant_list.html b/netbox/templates/tenancy/tenant_list.html
index 529f01c76..81173b368 100644
--- a/netbox/templates/tenancy/tenant_list.html
+++ b/netbox/templates/tenancy/tenant_list.html
@@ -24,7 +24,6 @@
{% include 'inc/search_panel.html' %}
- {% include 'inc/filter_panel.html' %}
{% endblock %}
diff --git a/netbox/tenancy/forms.py b/netbox/tenancy/forms.py
index bd98f2031..0e29a8495 100644
--- a/netbox/tenancy/forms.py
+++ b/netbox/tenancy/forms.py
@@ -55,5 +55,6 @@ class TenantBulkEditForm(BootstrapMixin, CustomFieldBulkEditForm):
class TenantFilterForm(BootstrapMixin, CustomFieldFilterForm):
model = Tenant
+ q = forms.CharField(required=False, label='Search')
group = FilterChoiceField(queryset=TenantGroup.objects.annotate(filter_count=Count('tenants')),
to_field_name='slug', null_option=(0, 'None'))