Fixes #164 (partially) - Add region field to site

This commit is contained in:
Raphaël Dujardin 2016-07-11 17:33:47 +02:00
parent 40173b4f8e
commit f629f19121
7 changed files with 32 additions and 4 deletions

View File

@ -16,12 +16,12 @@ class SiteFilter(django_filters.FilterSet):
class Meta: class Meta:
model = Site model = Site
fields = ['q', 'name', 'facility', 'asn'] fields = ['q', 'name', 'region', 'facility', 'asn']
def search(self, queryset, value): def search(self, queryset, value):
value = value.strip() value = value.strip()
qs_filter = Q(name__icontains=value) | Q(facility__icontains=value) | Q(physical_address__icontains=value) | \ 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: try:
qs_filter |= Q(asn=int(value)) qs_filter |= Q(asn=int(value))
except ValueError: except ValueError:

View File

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

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

View File

@ -55,6 +55,7 @@ STATUS_ICON = """
class SiteTable(BaseTable): class SiteTable(BaseTable):
name = tables.LinkColumn('dcim:site', args=[Accessor('slug')], verbose_name='Name') name = tables.LinkColumn('dcim:site', args=[Accessor('slug')], verbose_name='Name')
region = tables.Column(verbose_name='Region')
facility = tables.Column(verbose_name='Facility') facility = tables.Column(verbose_name='Facility')
asn = tables.Column(verbose_name='ASN') asn = tables.Column(verbose_name='ASN')
rack_count = tables.Column(accessor=Accessor('count_racks'), orderable=False, verbose_name='Racks') rack_count = tables.Column(accessor=Accessor('count_racks'), orderable=False, verbose_name='Racks')
@ -65,7 +66,7 @@ class SiteTable(BaseTable):
class Meta(BaseTable.Meta): class Meta(BaseTable.Meta):
model = Site 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') 'circuit_count')

View File

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

View File

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