Skip to content

Commit 4c5b49b

Browse files
committed
feat(table): ACLStandardRule: Changing Source Prefix to a single Source column that will display any Source
1 parent fa63c80 commit 4c5b49b

File tree

1 file changed

+26
-3
lines changed

1 file changed

+26
-3
lines changed

netbox_acls/tables.py

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,26 @@
2222
<a href="{{ record.assigned_object.virtual_machine.get_absolute_url }}">{{ record.assigned_object.virtual_machine|placeholder }}</a>
2323
{% endif %}
2424
"""
25-
25+
COL_SOURCE_AND_DESTINATION_ASSIGNMENT = """
26+
{% if record.#replaceme#_prefix %}
27+
<a href="{{ record.#replaceme#_prefix.get_absolute_url }}">{{ record.#replaceme#_prefix|placeholder }}</a>
28+
<span class="badge text-bg-grey">Prefix</span>
29+
{% elif record.#replaceme#_iprange %}
30+
<a href="{{ record.#replaceme#_iprange.get_absolute_url }}">{{ record.#replaceme#_iprange|placeholder }}</a>
31+
<span class="badge text-bg-grey">IP-Range</span>
32+
{% elif record.#replaceme#_ipaddress %}
33+
<a href="{{ record.#replaceme#_ipaddress.get_absolute_url }}">{{ record.#replaceme#_ipaddress|placeholder }}</a>
34+
<span class="badge text-bg-grey">IP-Address</span>
35+
{% elif record.#replaceme#_aggregate %}
36+
<a href="{{ record.#replaceme#_aggregate.get_absolute_url }}">{{ record.#replaceme#_aggregate|placeholder }}</a>
37+
<span class="badge text-bg-grey">Aggregate</span>
38+
{% elif record.#replaceme#_service %}
39+
<a href="{{ record.#replaceme#_service.get_absolute_url }}">{{ record.#replaceme#_service|placeholder }}</a>
40+
<span class="badge text-bg-grey">Service</span>
41+
{% else %}
42+
{{ ''|placeholder }}
43+
{% endif %}
44+
"""
2645

2746
class AccessListTable(NetBoxTable):
2847
"""
@@ -139,6 +158,10 @@ class ACLStandardRuleTable(NetBoxTable):
139158
tags = columns.TagColumn(
140159
url_name="plugins:netbox_acls:aclstandardrule_list",
141160
)
161+
source = tables.TemplateColumn(
162+
template_code=COL_SOURCE_AND_DESTINATION_ASSIGNMENT.replace('#replaceme#', 'source'),
163+
order_by=('source_prefix', 'source_iprange', 'source_ipaddress', 'source_aggregate', 'source_service')
164+
)
142165

143166
class Meta(NetBoxTable.Meta):
144167
model = ACLStandardRule
@@ -151,14 +174,14 @@ class Meta(NetBoxTable.Meta):
151174
"remark",
152175
"tags",
153176
"description",
154-
"source_prefix",
177+
"source",
155178
)
156179
default_columns = (
157180
"access_list",
158181
"index",
159182
"action",
160183
"remark",
161-
"source_prefix",
184+
"source",
162185
"tags",
163186
)
164187

0 commit comments

Comments
 (0)