@@ -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
---
@@ -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',
]
@@ -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
@@ -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)
@@ -208,7 +208,7 @@ class CircuitTerminationForm(BootstrapMixin, forms.ModelForm):
class Meta:
- '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",
@@ -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),
+ ),
@@ -258,6 +258,10 @@ class CircuitTermination(CableTermination):
blank=True,
verbose_name='Patch panel/port(s)'
)
+ description = models.CharField(
+ max_length=100,
+ blank=True
ordering = ['circuit', 'term_side']
@@ -68,6 +68,7 @@
</div>
{% render_field form.xconnect_id %}
{% render_field form.pp_info %}
+ {% render_field form.description %}
@@ -91,6 +91,10 @@
<td>Patch Panel/Port</td>
<td>{{ termination.pp_info|placeholder }}</td>
</tr>
+ <tr>
+ <td>Description</td>
+ <td>{{ termination.description|placeholder }}</td>
+ </tr>
</table>
{% else %}
<div class="panel-body">