1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

#6732: Show sites table under ASN view

This commit is contained in:
jeremystretch
2021-11-04 16:16:59 -04:00
parent 0bbd186635
commit c2f85a2877
2 changed files with 67 additions and 63 deletions

View File

@ -216,10 +216,13 @@ class ASNView(generic.ObjectView):
queryset = ASN.objects.all()
def get_extra_context(self, request, instance):
sites = instance.sites.restrict(request.user, 'view').all()
sites = instance.sites.restrict(request.user, 'view')
sites_table = SiteTable(sites)
paginate_table(sites_table, request)
return {
'sites': sites,
'sites_table': sites_table,
'sites_count': sites.count()
}

View File

@ -6,72 +6,73 @@
{% block breadcrumbs %}
{{ block.super }}
<li class="breadcrumb-item"><a href="{% url 'ipam:asn_list' %}?rir_id={{ object.rir.pk }}">{{ object.rir }}</a></li>
{% endblock %}
{% endblock breadcrumbs %}
{% block content %}
<div class="row">
<div class="col col-md-6">
<div class="card">
<h5 class="card-header">
ASN
</h5>
<div class="card-body">
<table class="table table-hover attr-table">
<tr>
<td>AS Number</td>
<td>{{ object.asn }}</td>
</tr>
<tr>
<td>RIR</td>
<td>
<a href="{% url 'ipam:asn_list' %}?rir={{ object.rir.slug }}">{{ object.rir }}</a>
</td>
</tr>
<tr>
<td>Tenant</td>
<td>
{% if object.tenant %}
{% if prefix.object.group %}
<a href="{{ object.tenant.group.get_absolute_url }}">{{ object.tenant.group }}</a> /
{% endif %}
<a href="{{ object.tenant.get_absolute_url }}">{{ object.tenant }}</a>
{% else %}
<span class="text-muted">None</span>
{% endif %}
</td>
</tr>
<tr>
<td>Description</td>
<td>{{ object.description|placeholder }}</td>
</tr>
</table>
</div>
<div class="row">
<div class="col col-md-6">
<div class="card">
<h5 class="card-header">ASN</h5>
<div class="card-body">
<table class="table table-hover attr-table">
<tr>
<td>AS Number</td>
<td>{{ object.asn }}</td>
</tr>
<tr>
<td>RIR</td>
<td>
<a href="{% url 'ipam:asn_list' %}?rir={{ object.rir.slug }}">{{ object.rir }}</a>
</td>
</tr>
<tr>
<td>Tenant</td>
<td>
{% if object.tenant %}
{% if prefix.object.group %}
<a href="{{ object.tenant.group.get_absolute_url }}">{{ object.tenant.group }}</a> /
{% endif %}
<a href="{{ object.tenant.get_absolute_url }}">{{ object.tenant }}</a>
{% else %}
<span class="text-muted">None</span>
{% endif %}
</td>
</tr>
<tr>
<td>Description</td>
<td>{{ object.description|placeholder }}</td>
</tr>
<tr>
<td>Sites</td>
<td>
{% if sites_count %}
<a href="{% url 'dcim:site_list' %}?asn_id={{ object.pk }}">{{ sites_count }}</a>
{% else %}
{{ sites_count }}
{% endif %}
</td>
</tr>
</table>
</div>
{% include 'inc/panels/custom_fields.html' %}
{% include 'inc/panels/tags.html' with tags=object.tags.all url='ipam:asn_list' %}
{% plugin_left_page object %}
</div>
{% plugin_left_page object %}
</div>
<div class="col col-md-6">
<div class="card">
<h5 class="card-header">
Sites
</h5>
<div class='card-body'>
{% if sites %}
{% for site in sites %}
<a href="{{ site.get_absolute_url }}"><span class="badge bg-primary">{{ site }}</span></a>
{% endfor %}
{% else %}
<span class="text-muted">None</span>
{% endif %}
</div>
</div>
{% plugin_right_page object %}
{% include 'inc/panels/custom_fields.html' %}
{% include 'inc/panels/tags.html' with tags=object.tags.all url='ipam:asn_list' %}
{% plugin_right_page object %}
</div>
</div>
<div class="row mb-3">
</div>
<div class="row">
<div class="col col-md-12">
{% plugin_full_width_page object %}
<div class="card">
<h5 class="card-header">Sites</h5>
<div class="card-body">
{% include 'inc/table.html' with table=sites_table %}
</div>
</div>
{% include 'inc/paginator.html' with paginator=sites_table.paginator page=sites_table.page %}
{% plugin_full_width_page object %}
</div>
</div>
{% endblock %}
</div>
{% endblock content %}