From 620d222f981db6cc656dcc62e0610f811e280a19 Mon Sep 17 00:00:00 2001 From: jeremystretch Date: Mon, 19 Apr 2021 15:56:39 -0400 Subject: [PATCH] Closes #6189: Add ability to search for locations by name or description --- docs/release-notes/version-2.11.md | 4 ++++ netbox/dcim/filters.py | 8 ++++++++ netbox/dcim/forms.py | 4 ++++ 3 files changed, 16 insertions(+) diff --git a/docs/release-notes/version-2.11.md b/docs/release-notes/version-2.11.md index 4a6943a57..44dce6b27 100644 --- a/docs/release-notes/version-2.11.md +++ b/docs/release-notes/version-2.11.md @@ -2,6 +2,10 @@ ## v2.11.1 (FUTURE) +### Enhancements + +* [#6189](https://github.com/netbox-community/netbox/issues/6189) - Add ability to search for locations by name or description + ### Bug Fixes * [#6184](https://github.com/netbox-community/netbox/issues/6184) - Fix parent object table column in prefix IP addresses list diff --git a/netbox/dcim/filters.py b/netbox/dcim/filters.py index 7ae016dc4..2dc4faefb 100644 --- a/netbox/dcim/filters.py +++ b/netbox/dcim/filters.py @@ -209,6 +209,14 @@ class LocationFilterSet(BaseFilterSet, NameSlugSearchFilterSet): model = Location fields = ['id', 'name', 'slug', 'description'] + def search(self, queryset, name, value): + if not value.strip(): + return queryset + return queryset.filter( + Q(name__icontains=value) | + Q(description__icontains=value) + ) + class RackRoleFilterSet(BaseFilterSet, NameSlugSearchFilterSet): diff --git a/netbox/dcim/forms.py b/netbox/dcim/forms.py index 740653a26..d63106fbf 100644 --- a/netbox/dcim/forms.py +++ b/netbox/dcim/forms.py @@ -559,6 +559,10 @@ class LocationBulkEditForm(BootstrapMixin, CustomFieldBulkEditForm): class LocationFilterForm(BootstrapMixin, CustomFieldFilterForm): model = Location + q = forms.CharField( + required=False, + label=_('Search') + ) region_id = DynamicModelMultipleChoiceField( queryset=Region.objects.all(), required=False,