Coverage for ipam/tables/template_code.py: 100%
12 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 18:35 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 18:35 +0000
1AGGREGATE_COPY_BUTTON = """
2{% copy_content record.pk prefix="aggregate_" %}
3"""
5PREFIX_LINK = """
6{% if record.pk %}
7 <a href="{{ record.get_absolute_url }}" id="prefix_{{ record.pk }}">{{ record.prefix }}</a>
8{% else %}
9 <a href="{% url 'ipam:prefix_add' %}?prefix={{ record }}{% if object.vrf %}&vrf={{ object.vrf.pk }}{% endif %}{% if object.scope %}&scope_content_type={{ object.scope_type.pk }}&scope_object_id={{ object.scope.pk }}{% endif %}{% if object.tenant %}&tenant_group={{ object.tenant.group.pk }}&tenant={{ object.tenant.pk }}{% endif %}">{{ record.prefix }}</a>
10{% endif %}
11"""
13PREFIX_COPY_BUTTON = """
14{% copy_content record.pk prefix="prefix_" %}
15"""
17PREFIX_LINK_WITH_DEPTH = """
18{% load helpers %}
19{% if record.depth %}
20 <div class="record-depth">
21 {% for i in record.depth|as_range %}
22 <span>•</span>
23 {% endfor %}
24 </div>
25{% endif %}
26""" + PREFIX_LINK
28# Annotate the ID of each IP address for copy-to-clipboard functionality
29IPADDRESS_LINK = """
30{% if record.address %}
31 <a href="{{ record.get_absolute_url }}" id="ipaddress_{{ record.pk}}">{{ record }}</a>
32{% elif record.start_address %}
33 <a href="{{ record.get_absolute_url }}">{{ record }}</a>
34{% elif perms.ipam.add_ipaddress %}
35 <a href="{% url 'ipam:ipaddress_add' %}?address={{ record.first_ip }}{% if object.vrf %}&vrf={{ object.vrf.pk }}{% endif %}{% if object.tenant %}&tenant={{ object.tenant.pk }}{% endif %}&return_url={% url 'ipam:prefix_ipaddresses' pk=object.pk %}" class="btn btn-sm btn-success">{{ record.title }}</a>
36{% else %}
37 {{ record.title }}
38{% endif %}
39"""
41IPADDRESS_COPY_BUTTON = """
42{% if record.address %}
43 {% copy_content record.pk prefix="ipaddress_" %}
44{% endif %}
45"""
47IPADDRESS_ASSIGN_LINK = """
48<a href="{% url 'ipam:ipaddress_edit' pk=record.pk %}?{% if request.GET.interface %}interface={{ request.GET.interface }}{% elif request.GET.vminterface %}vminterface={{ request.GET.vminterface }}{% endif %}&return_url={{ request.GET.return_url }}">{{ record }}</a>
49"""
51VRF_LINK = """
52{% if value %}
53 <a href="{{ record.vrf.get_absolute_url }}">{{ record.vrf }}</a>
54{% elif object.vrf %}
55 <a href="{{ object.vrf.get_absolute_url }}">{{ object.vrf }}</a>
56{% else %}
57 Global
58{% endif %}
59"""
61VLAN_LINK = """
62{% if record.pk %}
63 <a href="{{ record.get_absolute_url }}">{{ record.vid }}</a>
64{% elif perms.ipam.add_vlan %}
65 <a href="{% url 'ipam:vlan_add' %}?vid={{ record.vid }}{% if record.vlan_group %}&group={{ record.vlan_group.pk }}{% endif %}" class="btn btn-sm btn-success">{{ record.available }} VLAN{{ record.available|pluralize }} available</a>
66{% else %}
67 {{ record.available }} VLAN{{ record.available|pluralize }} available
68{% endif %}
69"""
71VLAN_PREFIXES = """
72{% for prefix in value.all %}
73 <a href="{% url 'ipam:prefix' pk=prefix.pk %}">{{ prefix }}</a>{% if not forloop.last %}<br />{% endif %}
74{% endfor %}
75"""
77VLANGROUP_BUTTONS = """
78{% with next_vid=record.get_next_available_vid %}
79 {% if next_vid and perms.ipam.add_vlan %}
80 <a href="{% url 'ipam:vlan_add' %}?group={{ record.pk }}&vid={{ next_vid }}" title="Add VLAN" class="btn btn-sm btn-success">
81 <i class="mdi mdi-plus-thick" aria-hidden="true"></i>
82 </a>
83 {% endif %}
84{% endwith %}
85"""
87VLAN_MEMBER_TAGGED = """
88{% if record.untagged_vlan_id == object.pk %}
89 <span class="text-danger"><i class="mdi mdi-close-thick"></i></span>
90{% else %}
91 <span class="text-success"><i class="mdi mdi-check-bold"></i></span>
92{% endif %}
93"""