From f629f191216dd3f2a69f01ec68b6c316bdf74621 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Dujardin?= Date: Mon, 11 Jul 2016 17:33:47 +0200 Subject: [PATCH] Fixes #164 (partially) - Add region field to site --- netbox/dcim/filters.py | 4 ++-- netbox/dcim/forms.py | 3 ++- netbox/dcim/migrations/0006_site_region.py | 20 ++++++++++++++++++++ netbox/dcim/models.py | 1 + netbox/dcim/tables.py | 3 ++- netbox/templates/dcim/site.html | 4 ++++ netbox/templates/dcim/site_edit.html | 1 + 7 files changed, 32 insertions(+), 4 deletions(-) create mode 100644 netbox/dcim/migrations/0006_site_region.py diff --git a/netbox/dcim/filters.py b/netbox/dcim/filters.py index 9712899a8..c8978a4ba 100644 --- a/netbox/dcim/filters.py +++ b/netbox/dcim/filters.py @@ -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: diff --git a/netbox/dcim/forms.py b/netbox/dcim/forms.py index bc3c8d8e8..1be609b2d 100644 --- a/netbox/dcim/forms.py +++ b/netbox/dcim/forms.py @@ -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)", diff --git a/netbox/dcim/migrations/0006_site_region.py b/netbox/dcim/migrations/0006_site_region.py new file mode 100644 index 000000000..4d3ebcd42 --- /dev/null +++ b/netbox/dcim/migrations/0006_site_region.py @@ -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), + ), + ] diff --git a/netbox/dcim/models.py b/netbox/dcim/models.py index 2f1a62d36..d8416a706 100644 --- a/netbox/dcim/models.py +++ b/netbox/dcim/models.py @@ -143,6 +143,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 = models.PositiveIntegerField(blank=True, null=True, verbose_name='ASN') physical_address = models.CharField(max_length=200, blank=True) diff --git a/netbox/dcim/tables.py b/netbox/dcim/tables.py index dc66c3ab1..3c783c375 100644 --- a/netbox/dcim/tables.py +++ b/netbox/dcim/tables.py @@ -55,6 +55,7 @@ STATUS_ICON = """ 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') @@ -65,7 +66,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') diff --git a/netbox/templates/dcim/site.html b/netbox/templates/dcim/site.html index a9db55e19..fd45bf18e 100644 --- a/netbox/templates/dcim/site.html +++ b/netbox/templates/dcim/site.html @@ -52,6 +52,10 @@ Site + + + + diff --git a/netbox/templates/dcim/site_edit.html b/netbox/templates/dcim/site_edit.html index b951cefc1..5e2bd8dde 100644 --- a/netbox/templates/dcim/site_edit.html +++ b/netbox/templates/dcim/site_edit.html @@ -7,6 +7,7 @@
{% 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 %}
Region{{ site.region }}
Facility {{ site.facility }}