This commit is contained in:
Raphaël Dujardin 2016-07-27 09:27:01 +00:00 committed by GitHub
commit a6fc0280d1
7 changed files with 32 additions and 4 deletions

View File

@ -16,12 +16,12 @@ class SiteFilter(django_filters.FilterSet):
class Meta:
model = Site
fields = ['q', 'name', 'facility', 'asn']
fields = ['q', 'name', 'region', '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)
Q(shipping_address__icontains=value) | Q(region__icontains=value)
try:
qs_filter |= Q(asn=int(value))
except ValueError:

View File

@ -48,13 +48,14 @@ class SiteForm(forms.ModelForm, BootstrapMixin):
class Meta:
model = Site
fields = ['name', 'slug', 'facility', 'asn', 'physical_address', 'shipping_address', 'comments']
fields = ['name', 'slug', 'region', 'facility', 'asn', 'physical_address', 'shipping_address', 'comments']
widgets = {
'physical_address': SmallTextarea(attrs={'rows': 3}),
'shipping_address': SmallTextarea(attrs={'rows': 3}),
}
help_texts = {
'name': "Full name of the site",
'region': "Region or group of the site",
'facility': "Data center provider and facility (e.g. Equinix NY7)",
'asn': "BGP autonomous system number",
'physical_address': "Physical location of the building (e.g. for GPS)",

View File

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.7 on 2016-07-11 13:56
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('dcim', '0005_auto_20160706_1722'),
]
operations = [
migrations.AddField(
model_name='site',
name='region',
field=models.CharField(blank=True, max_length=50),
),
]

View File

@ -152,6 +152,7 @@ class Site(CreatedUpdatedModel):
"""
name = models.CharField(max_length=50, unique=True)
slug = models.SlugField(unique=True)
region = models.CharField(max_length=50, blank=True)
facility = models.CharField(max_length=50, blank=True)
asn = ASNField(blank=True, null=True, verbose_name='ASN')
physical_address = models.CharField(max_length=200, blank=True)

View File

@ -60,6 +60,7 @@ UTILIZATION_GRAPH = """
class SiteTable(BaseTable):
name = tables.LinkColumn('dcim:site', args=[Accessor('slug')], verbose_name='Name')
region = tables.Column(verbose_name='Region')
facility = tables.Column(verbose_name='Facility')
asn = tables.Column(verbose_name='ASN')
rack_count = tables.Column(accessor=Accessor('count_racks'), orderable=False, verbose_name='Racks')
@ -70,7 +71,7 @@ class SiteTable(BaseTable):
class Meta(BaseTable.Meta):
model = Site
fields = ('name', 'facility', 'asn', 'rack_count', 'device_count', 'prefix_count', 'vlan_count',
fields = ('name', 'region', 'facility', 'asn', 'rack_count', 'device_count', 'prefix_count', 'vlan_count',
'circuit_count')

View File

@ -52,6 +52,10 @@
<strong>Site</strong>
</div>
<table class="table table-hover panel-body">
<tr>
<td>Region</td>
<td>{{ site.region }}</td>
</tr>
<tr>
<td>Facility</td>
<td>{{ site.facility }}</td>

View File

@ -7,6 +7,7 @@
<div class="panel-body">
{% render_field form.name %}
{% render_field form.slug %}
{% render_field form.region %}
{% render_field form.facility %}
{% render_field form.asn %}
{% render_field form.physical_address %}