diff --git a/netbox/circuits/views.py b/netbox/circuits/views.py index b67bff81b..78069bae0 100644 --- a/netbox/circuits/views.py +++ b/netbox/circuits/views.py @@ -1,5 +1,6 @@ from django.contrib import messages from django.db import transaction +from django.db.models import Q from django.shortcuts import get_object_or_404, redirect, render from django_tables2 import RequestConfig @@ -95,6 +96,28 @@ class CloudListView(generic.ObjectListView): class CloudView(generic.ObjectView): queryset = Cloud.objects.all() + def get_extra_context(self, request, instance): + circuits = Circuit.objects.restrict(request.user, 'view').filter( + Q(termination_a__cloud=instance.pk) | + Q(termination_z__cloud=instance.pk) + ).prefetch_related( + 'type', 'tenant', 'terminations__site' + ) + + circuits_table = tables.CircuitTable(circuits) + circuits_table.columns.hide('termination_a') + circuits_table.columns.hide('termination_z') + + paginate = { + 'paginator_class': EnhancedPaginator, + 'per_page': get_paginate_count(request) + } + RequestConfig(request, paginate).configure(circuits_table) + + return { + 'circuits_table': circuits_table, + } + class CloudEditView(generic.ObjectEditView): queryset = Cloud.objects.all() diff --git a/netbox/templates/circuits/cloud.html b/netbox/templates/circuits/cloud.html index 268f64387..532118bf8 100644 --- a/netbox/templates/circuits/cloud.html +++ b/netbox/templates/circuits/cloud.html @@ -33,6 +33,18 @@ +
+
+ Comments +
+
+ {% if object.comments %} + {{ object.comments|render_markdown }} + {% else %} + None + {% endif %} +
+
{% include 'inc/custom_fields_panel.html' %} {% include 'extras/inc/tags_panel.html' with tags=object.tags.all url='circuits:cloud_list' %} {% plugin_left_page object %} @@ -40,18 +52,13 @@
- Comments -
-
- {% if object.comments %} - {{ object.comments|render_markdown }} - {% else %} - None - {% endif %} + Circuits
+ {% include 'inc/table.html' with table=circuits_table %}
+ {% include 'inc/paginator.html' with paginator=circuits_table.paginator page=circuits_table.page %} {% plugin_right_page object %} -
+