From d241cce5020f6bfac31210b2703cb9040e955fab Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Mon, 25 Jul 2016 14:58:49 -0400 Subject: [PATCH] ipam.VLAN: Added description field, extended name to 64 chars --- netbox/ipam/api/serializers.py | 2 +- netbox/ipam/forms.py | 5 ++-- .../migrations/0005_auto_20160725_1842.py | 25 +++++++++++++++++++ netbox/ipam/models.py | 5 +++- netbox/ipam/views.py | 2 +- netbox/templates/ipam/vlan.html | 10 ++++++++ netbox/templates/ipam/vlan_bulk_edit.html | 1 + netbox/templates/ipam/vlan_import.html | 7 +++++- 8 files changed, 51 insertions(+), 6 deletions(-) create mode 100644 netbox/ipam/migrations/0005_auto_20160725_1842.py diff --git a/netbox/ipam/api/serializers.py b/netbox/ipam/api/serializers.py index c3d442fdf..bda8b1076 100644 --- a/netbox/ipam/api/serializers.py +++ b/netbox/ipam/api/serializers.py @@ -102,7 +102,7 @@ class VLANSerializer(serializers.ModelSerializer): class Meta: model = VLAN - fields = ['id', 'site', 'group', 'vid', 'name', 'status', 'role', 'display_name'] + fields = ['id', 'site', 'group', 'vid', 'name', 'status', 'role', 'description', 'display_name'] class VLANNestedSerializer(VLANSerializer): diff --git a/netbox/ipam/forms.py b/netbox/ipam/forms.py index f542f9bdd..eea0fdd54 100644 --- a/netbox/ipam/forms.py +++ b/netbox/ipam/forms.py @@ -474,7 +474,7 @@ class VLANForm(forms.ModelForm, BootstrapMixin): class Meta: model = VLAN - fields = ['site', 'group', 'vid', 'name', 'status', 'role'] + fields = ['site', 'group', 'vid', 'name', 'description', 'status', 'role'] help_texts = { 'site': "The site at which this VLAN exists", 'group': "VLAN group (optional)", @@ -511,7 +511,7 @@ class VLANFromCSVForm(forms.ModelForm): class Meta: model = VLAN - fields = ['site', 'group', 'vid', 'name', 'status_name', 'role'] + fields = ['site', 'group', 'vid', 'name', 'status_name', 'role', 'description'] def save(self, *args, **kwargs): m = super(VLANFromCSVForm, self).save(commit=False) @@ -532,6 +532,7 @@ class VLANBulkEditForm(forms.Form, BootstrapMixin): group = forms.ModelChoiceField(queryset=VLANGroup.objects.all(), required=False) status = forms.ChoiceField(choices=FORM_VLAN_STATUS_CHOICES, required=False) role = forms.ModelChoiceField(queryset=Role.objects.all(), required=False) + description = forms.CharField(max_length=100, required=False) class VLANBulkDeleteForm(ConfirmationForm): diff --git a/netbox/ipam/migrations/0005_auto_20160725_1842.py b/netbox/ipam/migrations/0005_auto_20160725_1842.py new file mode 100644 index 000000000..17eee6e8c --- /dev/null +++ b/netbox/ipam/migrations/0005_auto_20160725_1842.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.8 on 2016-07-25 18:42 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('ipam', '0004_ipam_vlangroup_uniqueness'), + ] + + operations = [ + migrations.AddField( + model_name='vlan', + name='description', + field=models.CharField(blank=True, max_length=100), + ), + migrations.AlterField( + model_name='vlan', + name='name', + field=models.CharField(max_length=64), + ), + ] diff --git a/netbox/ipam/models.py b/netbox/ipam/models.py index 0aa971ae3..510d8410a 100644 --- a/netbox/ipam/models.py +++ b/netbox/ipam/models.py @@ -406,7 +406,8 @@ class VLAN(CreatedUpdatedModel): MinValueValidator(1), MaxValueValidator(4094) ]) - name = models.CharField(max_length=30) + name = models.CharField(max_length=64) + description = models.CharField(max_length=100, blank=True) status = models.PositiveSmallIntegerField('Status', choices=VLAN_STATUS_CHOICES, default=1) role = models.ForeignKey('Role', related_name='vlans', on_delete=models.SET_NULL, blank=True, null=True) @@ -434,10 +435,12 @@ class VLAN(CreatedUpdatedModel): def to_csv(self): return ','.join([ self.site.name, + self.group.name if self.group else '', str(self.vid), self.name, self.get_status_display(), self.role.name if self.role else '', + self.description, ]) @property diff --git a/netbox/ipam/views.py b/netbox/ipam/views.py index ea980c2c6..3e3435505 100644 --- a/netbox/ipam/views.py +++ b/netbox/ipam/views.py @@ -565,7 +565,7 @@ class VLANBulkEditView(PermissionRequiredMixin, BulkEditView): def update_objects(self, pk_list, form): fields_to_update = {} - for field in ['site', 'group', 'status', 'role']: + for field in ['site', 'group', 'status', 'role', 'description']: if form.cleaned_data[field]: fields_to_update[field] = form.cleaned_data[field] diff --git a/netbox/templates/ipam/vlan.html b/netbox/templates/ipam/vlan.html index 1fc0d2287..8adbcd1be 100644 --- a/netbox/templates/ipam/vlan.html +++ b/netbox/templates/ipam/vlan.html @@ -69,6 +69,16 @@ Name {{ vlan.name }} + + Description + + {% if vlan.description %} + {{ vlan.description }} + {% else %} + None + {% endif %} + + Status diff --git a/netbox/templates/ipam/vlan_bulk_edit.html b/netbox/templates/ipam/vlan_bulk_edit.html index 5e8b684d4..67f98be08 100644 --- a/netbox/templates/ipam/vlan_bulk_edit.html +++ b/netbox/templates/ipam/vlan_bulk_edit.html @@ -11,6 +11,7 @@ {{ vlan.site }} {{ vlan.status }} {{ vlan.role }} + {{ vlan.description }} {% endfor %} {% endblock %} diff --git a/netbox/templates/ipam/vlan_import.html b/netbox/templates/ipam/vlan_import.html index ba1265c3f..affee3c18 100644 --- a/netbox/templates/ipam/vlan_import.html +++ b/netbox/templates/ipam/vlan_import.html @@ -58,10 +58,15 @@ Functional role (optional) Security + + Description + Short description (optional) + Security team only +

Example

-
LAS2,Backend Network,1400,Cameras,Active,Security
+
LAS2,Backend Network,1400,Cameras,Active,Security,Security team only
{% endblock %}