Просмотр исходного кода

Closes #6189: Add ability to search for locations by name or description

jeremystretch 4 лет назад
Родитель
Сommit
620d222f98
3 измененных файлов с 16 добавлено и 0 удалено
  1. 4 0
      docs/release-notes/version-2.11.md
  2. 8 0
      netbox/dcim/filters.py
  3. 4 0
      netbox/dcim/forms.py

+ 4 - 0
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

+ 8 - 0
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):
 

+ 4 - 0
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,