Fixes #108: Added search for Sites

This commit is contained in:
Jeremy Stretch
2016-06-29 12:06:37 -04:00
parent a1953bab8b
commit fbbdb3807c
4 changed files with 68 additions and 1 deletions

View File

@@ -8,6 +8,29 @@ from .models import (
)
class SiteFilter(django_filters.FilterSet):
q = django_filters.MethodFilter(
action='search',
label='Search',
)
class Meta:
model = Site
fields = ['q', 'name', 'facility', 'asn']
def search(self, queryset, value):
value = value.strip()
qs_filter = Q(name__icontains=value) |\
Q(facility__icontains=value) |\
Q(physical_address__icontains=value) |\
Q(shipping_address__icontains=value)
try:
qs_filter |= Q(asn=int(value))
except ValueError:
pass
return queryset.filter(qs_filter)
class RackGroupFilter(django_filters.FilterSet):
site_id = django_filters.ModelMultipleChoiceFilter(
name='site',

View File

@@ -61,6 +61,7 @@ def expand_pattern(string):
class SiteListView(ObjectListView):
queryset = Site.objects.all()
filter = filters.SiteFilter
table = tables.SiteTable
template_name = 'dcim/site_list.html'