diff --git a/CHANGELOG.md b/CHANGELOG.md index 7594cba95..45b014999 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ NetBox now supports modeling physical cables for console, power, and interface c ## Enhancements * [#450](https://github.com/digitalocean/netbox/issues/450) - Added `outer_width` and `outer_depth` fields to rack model +* [#867](https://github.com/digitalocean/netbox/issues/867) - Added `description` field to circuit terminations * [#1444](https://github.com/digitalocean/netbox/issues/1444) - Added an `asset_tag` field for racks * [#2000](https://github.com/digitalocean/netbox/issues/2000) - Dropped support for Python 2 * [#2104](https://github.com/digitalocean/netbox/issues/2104) - Added a `status` field for racks @@ -37,6 +38,7 @@ NetBox now supports modeling physical cables for console, power, and interface c * `power_ports` * `pass_through_ports` * The field `interface_ordering` has been removed from the DeviceType serializer +* Added a `description` field to the CircuitTermination serializer --- diff --git a/netbox/circuits/api/serializers.py b/netbox/circuits/api/serializers.py index 340755b8a..da2bed53a 100644 --- a/netbox/circuits/api/serializers.py +++ b/netbox/circuits/api/serializers.py @@ -92,7 +92,7 @@ class CircuitTerminationSerializer(ValidatedModelSerializer): model = CircuitTermination fields = [ 'id', 'circuit', 'term_side', 'site', 'port_speed', 'upstream_speed', 'xconnect_id', 'pp_info', - 'connected_endpoint', 'cable', + 'description', 'connected_endpoint', 'cable', ] diff --git a/netbox/circuits/api/views.py b/netbox/circuits/api/views.py index 229abd705..877d85f85 100644 --- a/netbox/circuits/api/views.py +++ b/netbox/circuits/api/views.py @@ -67,6 +67,8 @@ class CircuitViewSet(CustomFieldModelViewSet): # class CircuitTerminationViewSet(ModelViewSet): - queryset = CircuitTermination.objects.select_related('circuit', 'site') + queryset = CircuitTermination.objects.select_related( + 'circuit', 'site', 'connected_endpoint__device', 'cable' + ) serializer_class = serializers.CircuitTerminationSerializer filterset_class = filters.CircuitTerminationFilter diff --git a/netbox/circuits/filters.py b/netbox/circuits/filters.py index d1c86f9cf..61613bc6d 100644 --- a/netbox/circuits/filters.py +++ b/netbox/circuits/filters.py @@ -125,6 +125,7 @@ class CircuitFilter(CustomFieldFilterSet, django_filters.FilterSet): Q(cid__icontains=value) | Q(terminations__xconnect_id__icontains=value) | Q(terminations__pp_info__icontains=value) | + Q(terminations__description__icontains=value) | Q(description__icontains=value) | Q(comments__icontains=value) ).distinct() @@ -160,5 +161,6 @@ class CircuitTerminationFilter(django_filters.FilterSet): return queryset.filter( Q(circuit__cid__icontains=value) | Q(xconnect_id__icontains=value) | - Q(pp_info__icontains=value) + Q(pp_info__icontains=value) | + Q(description__icontains=value) ).distinct() diff --git a/netbox/circuits/forms.py b/netbox/circuits/forms.py index 2fa381dfe..d7c23543f 100644 --- a/netbox/circuits/forms.py +++ b/netbox/circuits/forms.py @@ -208,7 +208,7 @@ class CircuitTerminationForm(BootstrapMixin, forms.ModelForm): class Meta: model = CircuitTermination fields = [ - 'term_side', 'site', 'port_speed', 'upstream_speed', 'xconnect_id', 'pp_info', + 'term_side', 'site', 'port_speed', 'upstream_speed', 'xconnect_id', 'pp_info', 'description', ] help_texts = { 'port_speed': "Physical circuit speed", diff --git a/netbox/circuits/migrations/0014_circuittermination_description.py b/netbox/circuits/migrations/0014_circuittermination_description.py new file mode 100644 index 000000000..2b3070427 --- /dev/null +++ b/netbox/circuits/migrations/0014_circuittermination_description.py @@ -0,0 +1,18 @@ +# Generated by Django 2.1.3 on 2018-11-05 18:38 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('circuits', '0013_cables'), + ] + + operations = [ + migrations.AddField( + model_name='circuittermination', + name='description', + field=models.CharField(blank=True, max_length=100), + ), + ] diff --git a/netbox/circuits/models.py b/netbox/circuits/models.py index 1aa5a7281..e2f712479 100644 --- a/netbox/circuits/models.py +++ b/netbox/circuits/models.py @@ -258,6 +258,10 @@ class CircuitTermination(CableTermination): blank=True, verbose_name='Patch panel/port(s)' ) + description = models.CharField( + max_length=100, + blank=True + ) class Meta: ordering = ['circuit', 'term_side'] diff --git a/netbox/templates/circuits/circuittermination_edit.html b/netbox/templates/circuits/circuittermination_edit.html index 274c2a372..2bbc4695d 100644 --- a/netbox/templates/circuits/circuittermination_edit.html +++ b/netbox/templates/circuits/circuittermination_edit.html @@ -68,6 +68,7 @@ {% render_field form.xconnect_id %} {% render_field form.pp_info %} + {% render_field form.description %} diff --git a/netbox/templates/circuits/inc/circuit_termination.html b/netbox/templates/circuits/inc/circuit_termination.html index 55432b159..eba00d2fd 100644 --- a/netbox/templates/circuits/inc/circuit_termination.html +++ b/netbox/templates/circuits/inc/circuit_termination.html @@ -91,6 +91,10 @@ Patch Panel/Port {{ termination.pp_info|placeholder }} + + Description + {{ termination.description|placeholder }} + {% else %}