1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

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'

View File

@ -6,6 +6,26 @@
{% block title %}{{ site }}{% endblock %}
{% block content %}
<div class="row">
<div class="col-md-9">
<ol class="breadcrumb">
<li><a href="{% url 'dcim:site_list' %}">Sites</a></li>
<li>{{ site }}</li>
</ol>
</div>
<div class="col-md-3">
<form action="{% url 'dcim:site_list' %}" method="get">
<div class="input-group">
<input type="text" name="q" class="form-control" placeholder="Search" />
<span class="input-group-btn">
<button type="submit" class="btn btn-primary">
<span class="glyphicon glyphicon-search" aria-hidden="true"></span>
</button>
</span>
</div>
</form>
</div>
</div>
<div class="pull-right">
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#graphs_modal" data-obj="{{ site.name }}" data-url="{% url 'dcim-api:site_graphs' pk=site.pk %}" title="Show graphs">
<i class="glyphicon glyphicon-signal" aria-hidden="true"></i>

View File

@ -14,5 +14,28 @@
{% include 'inc/export_button.html' with obj_type='sites' %}
</div>
<h1>Sites</h1>
{% render_table table 'table.html' %}
<div class="row">
<div class="col-md-9">
{% render_table table 'table.html' %}
</div>
<div class="col-md-3">
<div class="panel panel-default">
<div class="panel-heading">
<strong>Search</strong>
</div>
<div class="panel-body">
<form action="{% url 'dcim:site_list' %}" method="get">
<div class="input-group">
<input type="text" name="q" class="form-control" placeholder="Name" {% if request.GET.q %}value="{{ request.GET.q }}" {% endif %}/>
<span class="input-group-btn">
<button type="submit" class="btn btn-primary">
<span class="glyphicon glyphicon-search" aria-hidden="true"></span>
</button>
</span>
</div>
</form>
</div>
</div>
</div>
</div>
{% endblock %}