mirror of
https://github.com/netbox-community/netbox.git
synced 2026-03-29 05:42:09 +02:00
* Closes: #18588: Relabel Service model to Application Service Updates the `verbose_name` of the `Service` and `ServiceTemplate` models to "Application Service" and "Application Service Template" respectively. This serves as the foundational change for relabeling the model throughout the user interface to reduce ambiguity. To preserve backward compatibility for the REST and GraphQL APIs, the test suites have been updated to assert the stability of the original field and parameter names. This includes: * Using `filter_name_map` in the filterset test case to ensure API query parameters remain `service` and `service_id`. * Employing the GraphQL test suite's aliasing mechanism to ensure the public schema remains unchanged despite the underlying `verbose_name` modification. Subsequent commits will address UI-specific labels in navigation, tables, forms, and templates. * Rename to Application Services/Application Service Templates in nav menu * Rename ~service to ~'Application Service' in templates This was done for both the Service model and Service Template model appearances in templates where the word was hardcoded. * Change ~service to ~'application service' hardcoded strings in Python files * Update ~service to ~'application service' in docs
130 lines
4.9 KiB
HTML
130 lines
4.9 KiB
HTML
{% extends 'generic/object.html' %}
|
|
{% load helpers %}
|
|
{% load plugins %}
|
|
{% load render_table from django_tables2 %}
|
|
{% load i18n %}
|
|
|
|
{% block content %}
|
|
<div class="row">
|
|
<div class="col col-12 col-md-4">
|
|
<div class="card">
|
|
<h2 class="card-header">{% trans "IP Address" %}</h2>
|
|
<table class="table table-hover attr-table">
|
|
<tr>
|
|
<th scope="row">{% trans "Family" %}</th>
|
|
<td>IPv{{ object.family }}</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">{% trans "VRF" %}</th>
|
|
<td>
|
|
{% if object.vrf %}
|
|
<a href="{% url 'ipam:vrf' pk=object.vrf.pk %}">{{ object.vrf }}</a>
|
|
{% else %}
|
|
<span>{% trans "Global" %}</span>
|
|
{% endif %}
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">{% trans "Tenant" %}</th>
|
|
<td>
|
|
{% if object.tenant.group %}
|
|
{{ object.tenant.group|linkify }} /
|
|
{% endif %}
|
|
{{ object.tenant|linkify|placeholder }}
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">{% trans "Status" %}</th>
|
|
<td>{% badge object.get_status_display bg_color=object.get_status_color %}</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">{% trans "Role" %}</th>
|
|
<td>
|
|
{% if object.role %}
|
|
<a href="{% url 'ipam:ipaddress_list' %}?role={{ object.role }}">{{ object.get_role_display }}</a>
|
|
{% else %}
|
|
{{ ''|placeholder }}
|
|
{% endif %}
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">{% trans "DNS Name" %}</th>
|
|
<td>{{ object.dns_name|placeholder }}</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">{% trans "Description" %}</th>
|
|
<td>{{ object.description|placeholder }}</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">{% trans "Assignment" %}</th>
|
|
<td>
|
|
{% if object.assigned_object %}
|
|
{% if object.assigned_object.parent_object %}
|
|
{{ object.assigned_object.parent_object|linkify }} /
|
|
{% endif %}
|
|
{{ object.assigned_object|linkify }}
|
|
{% else %}
|
|
{{ ''|placeholder }}
|
|
{% endif %}
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">{% trans "NAT (inside)" %}</th>
|
|
<td>
|
|
{% if object.nat_inside %}
|
|
{{ object.nat_inside|linkify }}
|
|
{% if object.nat_inside.assigned_object %}
|
|
({{ object.nat_inside.assigned_object.parent_object|linkify }})
|
|
{% endif %}
|
|
{% else %}
|
|
{{ ''|placeholder }}
|
|
{% endif %}
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">{% trans "NAT (outside)" %}</th>
|
|
<td>
|
|
{% for ip in object.nat_outside.all %}
|
|
{{ ip|linkify }}
|
|
{% if ip.assigned_object %}
|
|
({{ ip.assigned_object.parent_object|linkify }})
|
|
{% endif %}<br/>
|
|
{% empty %}
|
|
{{ ''|placeholder }}
|
|
{% endfor %}
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">Primary IP</th>
|
|
<td>{% checkmark object.is_primary_ip %}</td>
|
|
</tr>
|
|
<tr>
|
|
<th scope="row">OOB IP</th>
|
|
<td>{% checkmark object.is_oob_ip %}</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
{% include 'inc/panels/tags.html' %}
|
|
{% include 'inc/panels/custom_fields.html' %}
|
|
{% include 'inc/panels/comments.html' %}
|
|
{% plugin_left_page object %}
|
|
</div>
|
|
<div class="col col-md-8">
|
|
{% include 'inc/panel_table.html' with table=parent_prefixes_table heading='Parent Prefixes' %}
|
|
{% if duplicate_ips_table.rows %}
|
|
{% include 'inc/panel_table.html' with table=duplicate_ips_table heading='Duplicate IPs' panel_class='danger' %}
|
|
{% endif %}
|
|
<div class="card">
|
|
<h2 class="card-header">{% trans "Application Services" %}</h2>
|
|
{% htmx_table 'ipam:service_list' ip_address_id=object.pk %}
|
|
</div>
|
|
{% plugin_right_page object %}
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col col-md-12">
|
|
{% plugin_full_width_page object %}
|
|
</div>
|
|
</div>
|
|
{% endblock %}
|