Clean up site view

This commit is contained in:
jeremystretch 2021-12-06 13:43:02 -05:00
parent 0cd173f9df
commit 029605f926
2 changed files with 273 additions and 252 deletions

View File

@ -312,6 +312,7 @@ class SiteView(generic.ObjectView):
def get_extra_context(self, request, instance):
stats = {
'location_count': Location.objects.restrict(request.user, 'view').filter(site=instance).count(),
'rack_count': Rack.objects.restrict(request.user, 'view').filter(site=instance).count(),
'device_count': Device.objects.restrict(request.user, 'view').filter(site=instance).count(),
'prefix_count': Prefix.objects.restrict(request.user, 'view').filter(site=instance).count(),

View File

@ -20,11 +20,9 @@
{% block content %}
<div class="row">
<div class="col col-md-7">
<div class="col col-md-6">
<div class="card">
<h5 class="card-header">
Site
</h5>
<h5 class="card-header">Site</h5>
<div class="card-body">
<table class="table table-hover attr-table">
<tr>
@ -95,14 +93,6 @@
{% endif %}
</td>
</tr>
</table>
</div>
</div>
<div class="card">
<h5 class="card-header">Contact Info</h5>
<div class="card-body">
{% with deprecation_warning="This field will be removed in a future release. Please migrate this data to contact objects." %}
<table class="table table-hover attr-table">
<tr>
<th scope="row">Physical Address</th>
<td>
@ -137,6 +127,9 @@
{% endif %}
</td>
</tr>
{# Legacy contact fields #}
{% with deprecation_warning="This field will be removed in a future release. Please migrate this data to contact objects." %}
{% if object.contact_name %}
<tr>
<th scope="row">Contact Name</th>
<td>
@ -148,6 +141,8 @@
{{ object.contact_name|placeholder }}
</td>
</tr>
{% endif %}
{% if object.contact_phone %}
<tr>
<th scope="row">Contact Phone</th>
<td>
@ -161,6 +156,8 @@
{% endif %}
</td>
</tr>
{% endif %}
{% if object.contact_email %}
<tr>
<th scope="row">Contact E-Mail</th>
<td>
@ -174,22 +171,25 @@
{% endif %}
</td>
</tr>
</table>
{% endif %}
{% endwith %}
</table>
</div>
</div>
{% include 'inc/panels/custom_fields.html' %}
{% include 'inc/panels/tags.html' %}
{% include 'inc/panels/comments.html' %}
{% include 'inc/panels/contacts.html' %}
{% plugin_left_page object %}
</div>
<div class="col col-md-5">
<div class="col col-md-6">
<div class="card">
<h5 class="card-header">
Stats
</h5>
<h5 class="card-header">Stats</h5>
<div class="card-body">
<div class="row">
<div class="col col-md-4 text-center">
<h2><a href="{% url 'dcim:location_list' %}?site_id={{ object.pk }}" class="btn {% if stats.location_count %}btn-primary{% else %}btn-outline-dark{% endif %} btn-lg">{{ stats.location_count }}</a></h2>
<p>Locations</p>
</div>
<div class="col col-md-4 text-center">
<h2><a href="{% url 'dcim:rack_list' %}?site_id={{ object.pk }}" class="btn {% if stats.rack_count %}btn-primary{% else %}btn-outline-dark{% endif %} btn-lg">{{ stats.rack_count }}</a></h2>
<p>Racks</p>
@ -221,10 +221,9 @@
</div>
</div>
</div>
{% include 'inc/panels/contacts.html' %}
<div class="card">
<h5 class="card-header">
Locations
</h5>
<h5 class="card-header">Locations</h5>
<div class='card-body'>
{% if locations %}
<table class="table table-hover">
@ -258,20 +257,41 @@
<span class="text-muted">None</span>
{% endif %}
</div>
{% if perms.dcim.add_location %}
<div class="card-footer text-end noprint">
<a href="{% url 'dcim:location_add' %}?site={{ object.pk }}&return_url={{ object.get_absolute_url }}" class="btn btn-primary btn-sm">
<i class="mdi mdi-plus-thick" aria-hidden="true"></i> Add a location
</a>
</div>
{% endif %}
</div>
<div class="card">
<h5 class="card-header">
ASNs
</h5>
<h5 class="card-header">ASNs</h5>
<div class='card-body'>
{% if asns %}
<table class="table table-hover">
<tr>
<th>ASN</th>
<th>Description</th>
</tr>
{% for asn in asns %}
<a href="{{ asn.get_absolute_url }}"><span class="badge bg-primary">{{ asn }}</span></a>
<tr>
<td><a href="{{ asn.get_absolute_url }}">{{ asn }}</a></td>
<td>{{ asn.description|placeholder }}</td>
</tr>
{% endfor %}
</table>
{% else %}
<span class="text-muted">None</span>
{% endif %}
</div>
{% if perms.ipam.add_asn %}
<div class="card-footer text-end noprint">
<a href="{% url 'ipam:asn_add' %}?sites={{ object.pk }}&return_url={{ object.get_absolute_url }}" class="btn btn-primary btn-sm">
<i class="mdi mdi-plus-thick" aria-hidden="true"></i> Add an ASN
</a>
</div>
{% endif %}
</div>
{% include 'inc/panels/image_attachments.html' %}
{% plugin_right_page object %}