netbox-plugin-dns 1.1.2__py3-none-any.whl → 1.1.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of netbox-plugin-dns might be problematic. Click here for more details.
- netbox_dns/__init__.py +6 -5
- netbox_dns/api/nested_serializers.py +3 -2
- netbox_dns/api/serializers_/nameserver.py +2 -1
- netbox_dns/api/serializers_/record.py +5 -4
- netbox_dns/api/serializers_/record_template.py +2 -1
- netbox_dns/api/serializers_/view.py +2 -1
- netbox_dns/api/serializers_/zone.py +12 -11
- netbox_dns/api/serializers_/zone_template.py +8 -7
- netbox_dns/api/views.py +9 -4
- netbox_dns/choices/record.py +4 -2
- netbox_dns/choices/zone.py +6 -4
- netbox_dns/fields/address.py +2 -1
- netbox_dns/fields/network.py +2 -1
- netbox_dns/fields/rfc2317.py +7 -3
- netbox_dns/filtersets/nameserver.py +3 -2
- netbox_dns/filtersets/record.py +10 -9
- netbox_dns/filtersets/record_template.py +3 -2
- netbox_dns/filtersets/view.py +3 -2
- netbox_dns/filtersets/zone.py +24 -22
- netbox_dns/filtersets/zone_template.py +15 -14
- netbox_dns/forms/nameserver.py +41 -17
- netbox_dns/forms/record.py +43 -26
- netbox_dns/forms/record_template.py +49 -28
- netbox_dns/forms/registrar.py +21 -17
- netbox_dns/forms/registration_contact.py +37 -25
- netbox_dns/forms/view.py +49 -27
- netbox_dns/forms/zone.py +167 -120
- netbox_dns/forms/zone_template.py +53 -43
- netbox_dns/locale/de/LC_MESSAGES/django.mo +0 -0
- netbox_dns/locale/en/LC_MESSAGES/django.mo +0 -0
- netbox_dns/management/commands/rebuild_dnssync.py +14 -1
- netbox_dns/models/nameserver.py +6 -2
- netbox_dns/models/record.py +63 -30
- netbox_dns/models/record_template.py +16 -8
- netbox_dns/models/registrar.py +11 -7
- netbox_dns/models/registration_contact.py +23 -11
- netbox_dns/models/view.py +15 -6
- netbox_dns/models/zone.py +65 -43
- netbox_dns/models/zone_template.py +12 -10
- netbox_dns/navigation.py +30 -28
- netbox_dns/signals/ipam_dnssync.py +21 -14
- netbox_dns/tables/ipam_dnssync.py +2 -1
- netbox_dns/tables/nameserver.py +2 -0
- netbox_dns/tables/record.py +21 -11
- netbox_dns/tables/record_template.py +12 -5
- netbox_dns/tables/registrar.py +2 -0
- netbox_dns/tables/registration_contact.py +2 -0
- netbox_dns/tables/view.py +3 -1
- netbox_dns/tables/zone.py +15 -2
- netbox_dns/tables/zone_template.py +7 -0
- netbox_dns/templates/netbox_dns/nameserver.html +6 -5
- netbox_dns/templates/netbox_dns/record/managed.html +2 -1
- netbox_dns/templates/netbox_dns/record/related.html +26 -14
- netbox_dns/templates/netbox_dns/record.html +39 -20
- netbox_dns/templates/netbox_dns/recordtemplate.html +27 -15
- netbox_dns/templates/netbox_dns/registrar.html +11 -10
- netbox_dns/templates/netbox_dns/registrationcontact.html +16 -15
- netbox_dns/templates/netbox_dns/view/button.html +2 -1
- netbox_dns/templates/netbox_dns/view/prefix.html +7 -4
- netbox_dns/templates/netbox_dns/view/related.html +26 -10
- netbox_dns/templates/netbox_dns/view.html +11 -14
- netbox_dns/templates/netbox_dns/zone/base.html +2 -1
- netbox_dns/templates/netbox_dns/zone/child.html +3 -2
- netbox_dns/templates/netbox_dns/zone/record.html +3 -2
- netbox_dns/templates/netbox_dns/zone/registration.html +8 -7
- netbox_dns/templates/netbox_dns/zone.html +28 -30
- netbox_dns/templates/netbox_dns/zonetemplate.html +27 -17
- netbox_dns/utilities/ipam_dnssync.py +15 -4
- netbox_dns/validators/dns_name.py +11 -4
- netbox_dns/validators/dns_value.py +9 -4
- netbox_dns/validators/rfc2317.py +6 -3
- netbox_dns/views/nameserver.py +4 -2
- netbox_dns/views/record_template.py +4 -3
- netbox_dns/views/registrar.py +3 -1
- netbox_dns/views/registration_contact.py +2 -1
- netbox_dns/views/view.py +2 -1
- netbox_dns/views/zone.py +6 -4
- netbox_dns/views/zone_template.py +8 -7
- {netbox_plugin_dns-1.1.2.dist-info → netbox_plugin_dns-1.1.3.dist-info}/METADATA +1 -1
- netbox_plugin_dns-1.1.3.dist-info/RECORD +150 -0
- netbox_plugin_dns-1.1.2.dist-info/RECORD +0 -148
- {netbox_plugin_dns-1.1.2.dist-info → netbox_plugin_dns-1.1.3.dist-info}/LICENSE +0 -0
- {netbox_plugin_dns-1.1.2.dist-info → netbox_plugin_dns-1.1.3.dist-info}/WHEEL +0 -0
- {netbox_plugin_dns-1.1.2.dist-info → netbox_plugin_dns-1.1.3.dist-info}/top_level.txt +0 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import django_tables2 as tables
|
|
2
|
+
from django.utils.translation import gettext_lazy as _
|
|
2
3
|
|
|
3
4
|
from netbox.tables import NetBoxTable, TagColumn, ActionsColumn
|
|
4
5
|
from tenancy.tables import TenancyColumnsMixin
|
|
@@ -14,24 +15,30 @@ __all__ = (
|
|
|
14
15
|
|
|
15
16
|
class ZoneTemplateTable(TenancyColumnsMixin, NetBoxTable):
|
|
16
17
|
name = tables.Column(
|
|
18
|
+
verbose_name=_("Name"),
|
|
17
19
|
linkify=True,
|
|
18
20
|
)
|
|
19
21
|
tags = TagColumn(
|
|
20
22
|
url_name="plugins:netbox_dns:zonetemplate_list",
|
|
21
23
|
)
|
|
22
24
|
registrar = tables.Column(
|
|
25
|
+
verbose_name=_("Registrar"),
|
|
23
26
|
linkify=True,
|
|
24
27
|
)
|
|
25
28
|
registrant = tables.Column(
|
|
29
|
+
verbose_name=_("Registrant"),
|
|
26
30
|
linkify=True,
|
|
27
31
|
)
|
|
28
32
|
admin_c = tables.Column(
|
|
33
|
+
verbose_name=_("Administrative Contact"),
|
|
29
34
|
linkify=True,
|
|
30
35
|
)
|
|
31
36
|
tech_c = tables.Column(
|
|
37
|
+
verbose_name=_("Technical Contact"),
|
|
32
38
|
linkify=True,
|
|
33
39
|
)
|
|
34
40
|
billing_c = tables.Column(
|
|
41
|
+
verbose_name=_("Billing Contact"),
|
|
35
42
|
linkify=True,
|
|
36
43
|
)
|
|
37
44
|
|
|
@@ -1,29 +1,30 @@
|
|
|
1
1
|
{% extends 'generic/object.html' %}
|
|
2
|
+
{% load i18n %}
|
|
2
3
|
|
|
3
4
|
{% block content %}
|
|
4
5
|
<div class="row">
|
|
5
6
|
<div class="col col-md-6">
|
|
6
7
|
<div class="card">
|
|
7
|
-
<h5 class="card-header">
|
|
8
|
+
<h5 class="card-header">{% trans "Nameserver" %}</h5>
|
|
8
9
|
<table class="table table-hover attr-table">
|
|
9
10
|
<tr>
|
|
10
|
-
<th scope="row">Name</th>
|
|
11
|
+
<th scope="row">{% trans "Name" %}</th>
|
|
11
12
|
<td>{{ object.name }}</td>
|
|
12
13
|
</tr>
|
|
13
14
|
{% if unicode_name %}
|
|
14
15
|
<tr>
|
|
15
|
-
<th scope="row">IDN</th>
|
|
16
|
+
<th scope="row">{% trans "IDN" %}</th>
|
|
16
17
|
<td>{{ unicode_name }}</td>
|
|
17
18
|
</tr>
|
|
18
19
|
{% endif %}
|
|
19
20
|
{% if object.description %}
|
|
20
21
|
<tr>
|
|
21
|
-
<th scope="row">Description</th>
|
|
22
|
+
<th scope="row">{% trans "Description" %}</th>
|
|
22
23
|
<td style="word-break:break-all;">{{ object.description }}</td>
|
|
23
24
|
</tr>
|
|
24
25
|
{% endif %}
|
|
25
26
|
<tr>
|
|
26
|
-
<th scope="row">Tenant</th>
|
|
27
|
+
<th scope="row">{% trans "Tenant" %}</th>
|
|
27
28
|
<td>
|
|
28
29
|
{% if object.tenant.group %}
|
|
29
30
|
{{ object.tenant.group|linkify }} /
|
|
@@ -1,18 +1,30 @@
|
|
|
1
|
+
{% load render_table from django_tables2 %}
|
|
1
2
|
{% load perms %}
|
|
3
|
+
{% load i18n %}
|
|
2
4
|
|
|
3
5
|
{% if perms.netbox_dns.view_record %}
|
|
4
|
-
{% if related_address_records %}
|
|
5
|
-
|
|
6
|
-
{%
|
|
7
|
-
{%
|
|
8
|
-
{%
|
|
9
|
-
{%
|
|
10
|
-
{% endif %}
|
|
11
|
-
|
|
12
|
-
{%
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
{%
|
|
16
|
-
{%
|
|
17
|
-
|
|
6
|
+
{% if related_address_records %}
|
|
7
|
+
<div class="card">
|
|
8
|
+
{% if related_address_records.rows|length == 1 %}
|
|
9
|
+
<h2 class="card-header">{% trans "Related DNS Address Record" %}</h2>
|
|
10
|
+
{% else %}
|
|
11
|
+
<h2 class="card-header">{% trans "Related DNS Address Records" %}</h2>
|
|
12
|
+
{% endif %}
|
|
13
|
+
<div class="table-responsive">
|
|
14
|
+
{% render_table related_address_records 'inc/table.html' %}
|
|
15
|
+
</div>
|
|
16
|
+
</div>
|
|
17
|
+
{% endif %}
|
|
18
|
+
{% if related_pointer_records %}
|
|
19
|
+
<div class="card">
|
|
20
|
+
{% if related_pointer_records.rows|length == 1 %}
|
|
21
|
+
<h2 class="card-header">{% trans "Related DNS Pointer Record" %}</h2>
|
|
22
|
+
{% else %}
|
|
23
|
+
<h2 class="card-header">{% trans "Related DNS Pointer Records" %}</h2>
|
|
24
|
+
{% endif %}
|
|
25
|
+
<div class="table-responsive">
|
|
26
|
+
{% render_table related_pointer_records 'inc/table.html' %}
|
|
27
|
+
</div>
|
|
28
|
+
</div>
|
|
29
|
+
{% endif %}
|
|
18
30
|
{% endif %}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
{% load plugins %}
|
|
4
4
|
{% load render_table from django_tables2 %}
|
|
5
5
|
{% load perms %}
|
|
6
|
+
{% load i18n %}
|
|
6
7
|
|
|
7
8
|
{% block control-buttons %}
|
|
8
9
|
{% if object.managed %}
|
|
@@ -14,7 +15,7 @@
|
|
|
14
15
|
{% block breadcrumbs %}
|
|
15
16
|
{% if object.managed %}
|
|
16
17
|
<li class="breadcrumb-item">
|
|
17
|
-
<a href="{% url 'plugins:netbox_dns:managed_record_list' %}">{
|
|
18
|
+
<a href="{% url 'plugins:netbox_dns:managed_record_list' %}">{% trans "Managed Records" %}</a>
|
|
18
19
|
</li>
|
|
19
20
|
{% else %}
|
|
20
21
|
{{ block.super }}
|
|
@@ -36,20 +37,20 @@
|
|
|
36
37
|
<div class="col col-md-8">
|
|
37
38
|
{% endif %}
|
|
38
39
|
<div class="card">
|
|
39
|
-
<h5 class="card-header">Record</h5>
|
|
40
|
+
<h5 class="card-header">{% trans "Record" %}</h5>
|
|
40
41
|
<table class="table table-hover attr-table">
|
|
41
42
|
<tr>
|
|
42
|
-
<th scope="row">Name</th>
|
|
43
|
+
<th scope="row">{% trans "Name" %}</th>
|
|
43
44
|
<td style="word-break:break-all;">{{ object.name }}</td>
|
|
44
45
|
</tr>
|
|
45
46
|
{% if unicode_name %}
|
|
46
47
|
<tr>
|
|
47
|
-
<th scope="row">IDN</th>
|
|
48
|
+
<th scope="row">{% trans "IDN" %}</th>
|
|
48
49
|
<td style="word-break:break-all;">{{ unicode_name }}</td>
|
|
49
50
|
</tr>
|
|
50
51
|
{% endif %}
|
|
51
52
|
<tr>
|
|
52
|
-
<th scope="row">Zone</th>
|
|
53
|
+
<th scope="row">{% trans "Zone" %}</th>
|
|
53
54
|
{% if object.managed %}
|
|
54
55
|
<td><a href="{% url 'plugins:netbox_dns:zone_managed_records' pk=object.zone.pk %}">{{ object.zone }}</a></td>
|
|
55
56
|
{% else %}
|
|
@@ -58,7 +59,7 @@
|
|
|
58
59
|
</tr>
|
|
59
60
|
{% if not object.managed or object.tenant %}
|
|
60
61
|
<tr>
|
|
61
|
-
<th scope="row">Tenant</th>
|
|
62
|
+
<th scope="row">{% trans "Tenant" %}</th>
|
|
62
63
|
<td>
|
|
63
64
|
{% if object.tenant.group %}
|
|
64
65
|
{{ object.tenant.group|linkify }} /
|
|
@@ -68,50 +69,50 @@
|
|
|
68
69
|
</tr>
|
|
69
70
|
{% endif %}
|
|
70
71
|
<tr>
|
|
71
|
-
<th scope="row">Type</th>
|
|
72
|
+
<th scope="row">{% trans "Type" %}</th>
|
|
72
73
|
<td>{{ object.type }}</td>
|
|
73
74
|
</tr>
|
|
74
75
|
<tr>
|
|
75
|
-
<th scope="row">Value</th>
|
|
76
|
+
<th scope="row">{% trans "Value" %}</th>
|
|
76
77
|
<td style="word-break:break-all;">{{ object.value }}</td>
|
|
77
78
|
</tr>
|
|
78
79
|
{% if unicode_value %}
|
|
79
80
|
<tr>
|
|
80
|
-
<th scope="row">Unicode Value</th>
|
|
81
|
+
<th scope="row">{% trans "Unicode Value" %}</th>
|
|
81
82
|
<td style="word-break:break-all;">{{ unicode_value }}</td>
|
|
82
83
|
</tr>
|
|
83
84
|
{% endif %}
|
|
84
85
|
<tr>
|
|
85
|
-
<th scope="row">TTL</th>
|
|
86
|
+
<th scope="row">{% trans "TTL" %}</th>
|
|
86
87
|
<td>{{ object.ttl|placeholder }}</td>
|
|
87
88
|
</tr>
|
|
88
89
|
{% if object.type == 'A' or object.type == 'AAAA' %}
|
|
89
90
|
<tr>
|
|
90
|
-
<th scope="row">Disable PTR</th>
|
|
91
|
+
<th scope="row">{% trans "Disable PTR" %}</th>
|
|
91
92
|
<td>{% checkmark object.disable_ptr %}</td>
|
|
92
93
|
</tr>
|
|
93
94
|
{% endif %}
|
|
94
95
|
{% if object.ptr_record %}
|
|
95
96
|
<tr>
|
|
96
|
-
<th scope="row">PTR Record</th>
|
|
97
|
+
<th scope="row">{% trans "PTR Record" %}</th>
|
|
97
98
|
<td>{{ object.ptr_record|linkify }}</td>
|
|
98
99
|
</tr>
|
|
99
100
|
{% endif %}
|
|
100
101
|
{% if object.address_record %}
|
|
101
102
|
<tr>
|
|
102
|
-
<th scope="row">Address Record</th>
|
|
103
|
+
<th scope="row">{% trans "Address Record" %}</th>
|
|
103
104
|
<td>{{ object.address_record|linkify }}</td>
|
|
104
105
|
</tr>
|
|
105
106
|
{% if object.address_record.ipam_ip_address %}
|
|
106
107
|
<tr>
|
|
107
|
-
<th scope="row">IPAM IP Address</th>
|
|
108
|
+
<th scope="row">{% trans "IPAM IP Address" %}</th>
|
|
108
109
|
<td>{{ object.address_record.ipam_ip_address|linkify }}</td>
|
|
109
110
|
</tr>
|
|
110
111
|
{% endif %}
|
|
111
112
|
{% endif %}
|
|
112
113
|
{% if object.ipam_ip_address %}
|
|
113
114
|
<tr>
|
|
114
|
-
<th scope="row">IPAM IP Address</th>
|
|
115
|
+
<th scope="row">{% trans "IPAM IP Address" %}</th>
|
|
115
116
|
<td>{{ object.ipam_ip_address|linkify }}</td>
|
|
116
117
|
</tr>
|
|
117
118
|
{% endif %}
|
|
@@ -121,16 +122,34 @@
|
|
|
121
122
|
</tr>
|
|
122
123
|
{% if object.description %}
|
|
123
124
|
<tr>
|
|
124
|
-
<th scope="row">Description</th>
|
|
125
|
+
<th scope="row">{% trans "Description" %}</th>
|
|
125
126
|
<td style="word-break:break-all;">{{ object.description }}</td>
|
|
126
127
|
</tr>
|
|
127
128
|
{% endif %}
|
|
128
129
|
</table>
|
|
129
130
|
</div>
|
|
130
|
-
{% if cname_target_table
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
131
|
+
{% if cname_target_table %}
|
|
132
|
+
<div class="card">
|
|
133
|
+
{% if cname_target_table.rows|length == 1 %}
|
|
134
|
+
<h2 class="card-header">{% trans "CNAME Target" %}</h2>
|
|
135
|
+
{% else %}
|
|
136
|
+
<h2 class="card-header">{% trans "CNAME Targets" %}</h2>
|
|
137
|
+
{% endif %}
|
|
138
|
+
<div class="table-responsive">
|
|
139
|
+
{% render_table cname_target_table 'inc/table.html' %}
|
|
140
|
+
</div>
|
|
141
|
+
</div>
|
|
142
|
+
{% elif cname_table %}
|
|
143
|
+
<div class="card">
|
|
144
|
+
{% if cname_table.rows|length == 1 %}
|
|
145
|
+
<h2 class="card-header">{% trans "CNAME" %}</h2>
|
|
146
|
+
{% else %}
|
|
147
|
+
<h2 class="card-header">{% trans "CNAMEs" %}</h2>
|
|
148
|
+
{% endif %}
|
|
149
|
+
<div class="table-responsive">
|
|
150
|
+
{% render_table cname_table 'inc/table.html' %}
|
|
151
|
+
</div>
|
|
152
|
+
</div>
|
|
134
153
|
{% endif %}
|
|
135
154
|
{% if not object.managed %}
|
|
136
155
|
{% include 'inc/panels/custom_fields.html' %}
|
|
@@ -3,30 +3,31 @@
|
|
|
3
3
|
{% load plugins %}
|
|
4
4
|
{% load render_table from django_tables2 %}
|
|
5
5
|
{% load perms %}
|
|
6
|
+
{% load i18n %}
|
|
6
7
|
|
|
7
8
|
{% block content %}
|
|
8
9
|
<div class="row">
|
|
9
10
|
<div class="col col-md-8">
|
|
10
11
|
<div class="card">
|
|
11
|
-
<h5 class="card-header">Record Template</h5>
|
|
12
|
+
<h5 class="card-header">{% trans "Record Template" %}</h5>
|
|
12
13
|
<table class="table table-hover attr-table">
|
|
13
14
|
<tr>
|
|
14
|
-
<th scope="row">Template Name</th>
|
|
15
|
+
<th scope="row">{% trans "Template Name" %}</th>
|
|
15
16
|
<td style="word-break:break-all;">{{ object.name }}</td>
|
|
16
17
|
</tr>
|
|
17
18
|
<tr>
|
|
18
|
-
<th scope="row">Name</th>
|
|
19
|
+
<th scope="row">{% trans "Name" %}</th>
|
|
19
20
|
<td style="word-break:break-all;">{{ object.record_name }}</td>
|
|
20
21
|
</tr>
|
|
21
22
|
{% if unicode_name %}
|
|
22
23
|
<tr>
|
|
23
|
-
<th scope="row">IDN</th>
|
|
24
|
+
<th scope="row">{% trans "IDN" %}</th>
|
|
24
25
|
<td style="word-break:break-all;">{{ unicode_name }}</td>
|
|
25
26
|
</tr>
|
|
26
27
|
{% endif %}
|
|
27
28
|
{% if object.tenant %}
|
|
28
29
|
<tr>
|
|
29
|
-
<th scope="row">Tenant</th>
|
|
30
|
+
<th scope="row">{% trans "Tenant" %}</th>
|
|
30
31
|
<td>
|
|
31
32
|
{% if object.tenant.group %}
|
|
32
33
|
{{ object.tenant.group|linkify }} /
|
|
@@ -36,36 +37,36 @@
|
|
|
36
37
|
</tr>
|
|
37
38
|
{% endif %}
|
|
38
39
|
<tr>
|
|
39
|
-
<th scope="row">Type</th>
|
|
40
|
+
<th scope="row">{% trans "Type" %}</th>
|
|
40
41
|
<td>{{ object.type }}</td>
|
|
41
42
|
</tr>
|
|
42
43
|
<tr>
|
|
43
|
-
<th scope="row">Value</th>
|
|
44
|
+
<th scope="row">{% trans "Value" %}</th>
|
|
44
45
|
<td style="word-break:break-all;">{{ object.value }}</td>
|
|
45
46
|
</tr>
|
|
46
47
|
{% if unicode_value %}
|
|
47
48
|
<tr>
|
|
48
|
-
<th scope="row">Unicode Value
|
|
49
|
+
<th scope="row">{% trans "Unicode Value" %}/th>
|
|
49
50
|
<td style="word-break:break-all;">{{ unicode_value }}</td>
|
|
50
51
|
</tr>
|
|
51
52
|
{% endif %}
|
|
52
53
|
<tr>
|
|
53
|
-
<th scope="row">TTL</th>
|
|
54
|
+
<th scope="row">{% trans "TTL" %}</th>
|
|
54
55
|
<td>{{ object.ttl|placeholder }}</td>
|
|
55
56
|
</tr>
|
|
56
57
|
{% if object.type == 'A' or object.type == 'AAAA' %}
|
|
57
58
|
<tr>
|
|
58
|
-
<th scope="row">Disable PTR</th>
|
|
59
|
+
<th scope="row">{% trans "Disable PTR" %}</th>
|
|
59
60
|
<td>{% checkmark object.disable_ptr %}</td>
|
|
60
61
|
</tr>
|
|
61
62
|
{% endif %}
|
|
62
63
|
<tr>
|
|
63
|
-
<th scope="row">Status</th>
|
|
64
|
+
<th scope="row">{% trans "Status" %}</th>
|
|
64
65
|
<td>{% badge object.get_status_display bg_color=object.get_status_color %}</td>
|
|
65
66
|
</tr>
|
|
66
67
|
{% if object.description %}
|
|
67
68
|
<tr>
|
|
68
|
-
<th scope="row">Description</th>
|
|
69
|
+
<th scope="row">{% trans "Description" %}</th>
|
|
69
70
|
<td style="word-break:break-all;">{{ object.description }}</td>
|
|
70
71
|
</tr>
|
|
71
72
|
{% endif %}
|
|
@@ -76,9 +77,20 @@
|
|
|
76
77
|
<div class="col col-md-4">
|
|
77
78
|
{% include 'inc/panels/tags.html' %}
|
|
78
79
|
</div>
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
80
|
+
{% if zone_template_table %}
|
|
81
|
+
<div class="col col-md-12">
|
|
82
|
+
<div class="card">
|
|
83
|
+
{% if zone_template_table.rows|length == 1 %}
|
|
84
|
+
<h2 class="card-header">{% trans "Zone Template" %}</h2>
|
|
85
|
+
{% else %}
|
|
86
|
+
<h2 class="card-header">{% trans "Zone Templates" %}</h2>
|
|
87
|
+
{% endif %}
|
|
88
|
+
<div class="table-responsive">
|
|
89
|
+
{% render_table zone_template_table 'inc/table.html' %}
|
|
90
|
+
</div>
|
|
91
|
+
</div>
|
|
92
|
+
</div>
|
|
93
|
+
{% endif %}
|
|
82
94
|
</div>
|
|
83
95
|
|
|
84
96
|
{% endblock %}
|
|
@@ -1,48 +1,49 @@
|
|
|
1
1
|
{% extends 'generic/object.html' %}
|
|
2
|
+
{% load i18n %}
|
|
2
3
|
|
|
3
4
|
{% block content %}
|
|
4
5
|
<div class="row">
|
|
5
6
|
<div class="col col-md-6">
|
|
6
7
|
<div class="card">
|
|
7
|
-
<h5 class="card-header">Registrar</h5>
|
|
8
|
+
<h5 class="card-header">{% trans "Registrar" %}</h5>
|
|
8
9
|
<table class="table table-hover attr-table">
|
|
9
10
|
<tr>
|
|
10
|
-
<th scope="row">Name</th>
|
|
11
|
+
<th scope="row">{% trans "Name" %}</th>
|
|
11
12
|
<td>{{ object.name }}</td>
|
|
12
13
|
</tr>
|
|
13
14
|
{% if object.description %}
|
|
14
15
|
<tr>
|
|
15
|
-
<th scope="row">Description</th>
|
|
16
|
+
<th scope="row">{% trans "Description" %}</th>
|
|
16
17
|
<td style="word-break:break-all;">{{ object.description }}</td>
|
|
17
18
|
</tr>
|
|
18
19
|
{% endif %}
|
|
19
20
|
<tr>
|
|
20
|
-
<th scope="row">IANA ID</th>
|
|
21
|
+
<th scope="row">{% trans "IANA ID" %}</th>
|
|
21
22
|
<td>{{ object.iana_id }}</td>
|
|
22
23
|
</tr>
|
|
23
24
|
</table>
|
|
24
25
|
</div>
|
|
25
26
|
<div class="card">
|
|
26
|
-
<h5 class="card-header">Contact Details</h5>
|
|
27
|
+
<h5 class="card-header">{% trans "Contact Details" %}</h5>
|
|
27
28
|
<table class="table table-hover attr-table">
|
|
28
29
|
<tr>
|
|
29
|
-
<th scope="row">Address</th>
|
|
30
|
+
<th scope="row">{% trans "Address" %}</th>
|
|
30
31
|
<td>{{ object.address }}</td>
|
|
31
32
|
</tr>
|
|
32
33
|
<tr>
|
|
33
|
-
<th scope="row">Referral URL</th>
|
|
34
|
+
<th scope="row">{% trans "Referral URL" %}</th>
|
|
34
35
|
<td><a href="{{ object.referral_url }}">{{ object.referral_url }}</a></td>
|
|
35
36
|
</tr>
|
|
36
37
|
<tr>
|
|
37
|
-
<th scope="row">WHOIS Server</th>
|
|
38
|
+
<th scope="row">{% trans "WHOIS Server" %}</th>
|
|
38
39
|
<td>{{ object.whois_server }}</td>
|
|
39
40
|
</tr>
|
|
40
41
|
<tr>
|
|
41
|
-
<th scope="row">Abuse Email</th>
|
|
42
|
+
<th scope="row">{% trans "Abuse Email" %}</th>
|
|
42
43
|
<td>{{ object.abuse_email }}</td>
|
|
43
44
|
</tr>
|
|
44
45
|
<tr>
|
|
45
|
-
<th scope="row">Abuse Phone</th>
|
|
46
|
+
<th scope="row">{% trans "Abuse Phone" %}</th>
|
|
46
47
|
<td>{{ object.abuse_phone }}</td>
|
|
47
48
|
</tr>
|
|
48
49
|
</table>
|
|
@@ -1,67 +1,68 @@
|
|
|
1
1
|
{% extends 'generic/object.html' %}
|
|
2
|
+
{% load i18n %}
|
|
2
3
|
|
|
3
4
|
{% block content %}
|
|
4
5
|
<div class="row">
|
|
5
6
|
<div class="col col-md-6">
|
|
6
7
|
<div class="card">
|
|
7
|
-
<h5 class="card-header">Registration Contact</h5>
|
|
8
|
+
<h5 class="card-header">{% trans "Registration Contact" %}</h5>
|
|
8
9
|
<table class="table table-hover attr-table">
|
|
9
10
|
<tr>
|
|
10
|
-
<th scope="row">Name</th>
|
|
11
|
+
<th scope="row">{% trans "Name" %}</th>
|
|
11
12
|
<td>{{ object.name }}</td>
|
|
12
13
|
</tr>
|
|
13
14
|
{% if object.description %}
|
|
14
15
|
<tr>
|
|
15
|
-
<th scope="row">Description</th>
|
|
16
|
+
<th scope="row">{% trans "Description" %}</th>
|
|
16
17
|
<td style="word-break:break-all;">{{ object.description }}</td>
|
|
17
18
|
</tr>
|
|
18
19
|
{% endif %}
|
|
19
20
|
<tr>
|
|
20
|
-
<th scope="row">Contact ID</th>
|
|
21
|
+
<th scope="row">{% trans "Contact ID" %}</th>
|
|
21
22
|
<td>{{ object.contact_id }}</td>
|
|
22
23
|
</tr>
|
|
23
24
|
<tr>
|
|
24
|
-
<th scope="row">Organization</th>
|
|
25
|
+
<th scope="row">{% trans "Organization" %}</th>
|
|
25
26
|
<td>{{ object.organization }}</td>
|
|
26
27
|
</tr>
|
|
27
28
|
<tr>
|
|
28
|
-
<th scope="row">Street</th>
|
|
29
|
+
<th scope="row">{% trans "Street" %}</th>
|
|
29
30
|
<td>{{ object.street }}</td>
|
|
30
31
|
</tr>
|
|
31
32
|
<tr>
|
|
32
|
-
<th scope="row">City</th>
|
|
33
|
+
<th scope="row">{% trans "City" %}</th>
|
|
33
34
|
<td>{{ object.city }}</td>
|
|
34
35
|
</tr>
|
|
35
36
|
<tr>
|
|
36
|
-
<th scope="row">State/Province</th>
|
|
37
|
+
<th scope="row">{% trans "State/Province" %}</th>
|
|
37
38
|
<td>{{ object.state_province }}</td>
|
|
38
39
|
</tr>
|
|
39
40
|
<tr>
|
|
40
|
-
<th scope="row">Postal Code</th>
|
|
41
|
+
<th scope="row">{% trans "Postal Code" %}</th>
|
|
41
42
|
<td>{{ object.postal_code }}</td>
|
|
42
43
|
</tr>
|
|
43
44
|
<tr>
|
|
44
|
-
<th scope="row">Country</th>
|
|
45
|
+
<th scope="row">{% trans "Country" %}</th>
|
|
45
46
|
<td>{{ object.country }}</td>
|
|
46
47
|
</tr>
|
|
47
48
|
<tr>
|
|
48
|
-
<th scope="row">Phone</th>
|
|
49
|
+
<th scope="row">{% trans "Phone" %}</th>
|
|
49
50
|
<td>{{ object.phone }}</td>
|
|
50
51
|
</tr>
|
|
51
52
|
<tr>
|
|
52
|
-
<th scope="row">Phone Extension</th>
|
|
53
|
+
<th scope="row">{% trans "Phone Extension" %}</th>
|
|
53
54
|
<td>{{ object.phone_ext }}</td>
|
|
54
55
|
</tr>
|
|
55
56
|
<tr>
|
|
56
|
-
<th scope="row">Fax</th>
|
|
57
|
+
<th scope="row">{% trans "Fax" %}</th>
|
|
57
58
|
<td>{{ object.fax }}</td>
|
|
58
59
|
</tr>
|
|
59
60
|
<tr>
|
|
60
|
-
<th scope="row">Fax Extension</th>
|
|
61
|
+
<th scope="row">{% trans "Fax Extension" %}</th>
|
|
61
62
|
<td>{{ object.fax_ext }}</td>
|
|
62
63
|
</tr>
|
|
63
64
|
<tr>
|
|
64
|
-
<th scope="row">Email</th>
|
|
65
|
+
<th scope="row">{% trans "Email" %}</th>
|
|
65
66
|
<td>{{ object.email }}</td>
|
|
66
67
|
</tr>
|
|
67
68
|
</table>
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
{% load perms %}
|
|
2
|
+
{% load i18n %}
|
|
2
3
|
|
|
3
4
|
{% if perms.netbox_dns.change_view %}
|
|
4
5
|
<a href="{{ url }}?return_url={{ object.get_absolute_url }}">
|
|
5
6
|
<button type="submit" class="btn btn-primary" name="assign-view">
|
|
6
|
-
<i class="mdi mdi-eye-outline" aria-hidden="true"></i> DNS Views
|
|
7
|
+
<i class="mdi mdi-eye-outline" aria-hidden="true"></i> {% trans "DNS Views" %}
|
|
7
8
|
</button>
|
|
8
9
|
</a>
|
|
9
10
|
{% endif %}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
{% extends 'generic/_base.html' %}
|
|
2
|
+
{% load i18n %}
|
|
2
3
|
|
|
3
4
|
{% block title %}
|
|
4
|
-
|
|
5
|
+
{% blocktrans trimmed with type=object|meta:"verbose_name" name=object vrf=object.vrf|default:"" %}
|
|
6
|
+
Configure DNS views for {{ type }} {{ name }} {{ vrf }}
|
|
7
|
+
{% endblocktrans %}
|
|
5
8
|
{% endblock title %}
|
|
6
9
|
|
|
7
10
|
{% block content %}
|
|
@@ -14,7 +17,7 @@ Configure DNS views for {{ object|meta:"verbose_name" }} {{ object }} {% if obje
|
|
|
14
17
|
{% if inherited_from %}
|
|
15
18
|
<div class="card">
|
|
16
19
|
<table class="table table-hover attr-table">
|
|
17
|
-
<th>Views inherited from prefix {{ inherited_from }} {% if inherited_from.vrf %}[{{ inherited_from.vrf }}] {% endif %}</th>
|
|
20
|
+
<th>{% trans "Views inherited from prefix" %} {{ inherited_from }} {% if inherited_from.vrf %}[{{ inherited_from.vrf }}] {% endif %}</th>
|
|
18
21
|
{% for view in inherited_views %}
|
|
19
22
|
<tr><td>{{ view|linkify }}</td><td>{{ view.description }}</td></tr>
|
|
20
23
|
{% endfor %}
|
|
@@ -28,8 +31,8 @@ Configure DNS views for {{ object|meta:"verbose_name" }} {{ object }} {% if obje
|
|
|
28
31
|
|
|
29
32
|
<div class="text-end my-3">
|
|
30
33
|
{% block buttons %}
|
|
31
|
-
<a href="{{ return_url }}" class="btn btn-outline-secondary">Cancel</a>
|
|
32
|
-
<button type="submit" name="_update" class="btn btn-primary">Save</button>
|
|
34
|
+
<a href="{{ return_url }}" class="btn btn-outline-secondary">{% trans "Cancel" %}</a>
|
|
35
|
+
<button type="submit" name="_update" class="btn btn-primary">{% trans "Save" %}</button>
|
|
33
36
|
{% endblock buttons %}
|
|
34
37
|
</div>
|
|
35
38
|
</form>
|
|
@@ -1,17 +1,33 @@
|
|
|
1
|
+
{% load render_table from django_tables2 %}
|
|
1
2
|
{% load perms %}
|
|
3
|
+
{% load i18n %}
|
|
2
4
|
|
|
3
5
|
{% if perms.netbox_dns.view_view %}
|
|
4
6
|
{% if assigned_views %}
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
<div class="col col-md-12">
|
|
8
|
+
<div class="card">
|
|
9
|
+
{% if assigned_views.rows|length == 1 %}
|
|
10
|
+
<h2 class="card-header">{% trans "Assigned DNS View" %}</h2>
|
|
11
|
+
{% else %}
|
|
12
|
+
<h2 class="card-header">{% trans "Assigned DNS Views" %}</h2>
|
|
13
|
+
{% endif %}
|
|
14
|
+
<div class="table-responsive">
|
|
15
|
+
{% render_table assigned_views 'inc/table.html' %}
|
|
16
|
+
</div>
|
|
17
|
+
</div>
|
|
18
|
+
</div>
|
|
10
19
|
{% elif inherited_views %}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
20
|
+
<div class="col col-md-12">
|
|
21
|
+
<div class="card">
|
|
22
|
+
{% if inherited_views.rows|length == 1 %}
|
|
23
|
+
<h2 class="card-header">{% trans "Inherited DNS View" %}</h2>
|
|
24
|
+
{% else %}
|
|
25
|
+
<h2 class="card-header">{% trans "Inherited DNS Views" %}</h2>
|
|
26
|
+
{% endif %}
|
|
27
|
+
<div class="table-responsive">
|
|
28
|
+
{% render_table inherited_views 'inc/table.html' %}
|
|
29
|
+
</div>
|
|
30
|
+
</div>
|
|
31
|
+
</div>
|
|
16
32
|
{% endif %}
|
|
17
33
|
{% endif %}
|