Coverage for ipam/tables/fhrp.py: 96%
26 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
1import django_tables2 as tables
2from django.utils.translation import gettext_lazy as _
4from ipam.models import *
5from netbox.tables import NetBoxTable, PrimaryModelTable, columns
7__all__ = (
8 'FHRPGroupAssignmentTable',
9 'FHRPGroupTable',
10)
13IPADDRESSES = """
14{% for ip in value.all %}
15 <a href="{{ ip.get_absolute_url }}">{{ ip }}</a><br />
16{% endfor %}
17"""
20class FHRPGroupTable(PrimaryModelTable):
21 group_id = tables.Column(
22 verbose_name=_('Group ID'),
23 linkify=True
24 )
25 ip_addresses = tables.TemplateColumn(
26 template_code=IPADDRESSES,
27 orderable=False,
28 verbose_name=_('IP Addresses')
29 )
30 member_count = tables.Column(
31 verbose_name=_('Members')
32 )
33 tags = columns.TagColumn(
34 url_name='ipam:fhrpgroup_list'
35 )
37 def value_ip_addresses(self, value):
38 return ",".join([str(obj.address) for obj in value.all()])
40 class Meta(PrimaryModelTable.Meta):
41 model = FHRPGroup
42 fields = (
43 'pk', 'group_id', 'protocol', 'name', 'auth_type', 'auth_key', 'description', 'comments', 'ip_addresses',
44 'member_count', 'tags', 'created', 'last_updated',
45 )
46 default_columns = (
47 'pk', 'group_id', 'protocol', 'name', 'auth_type', 'description', 'ip_addresses', 'member_count',
48 )
51class FHRPGroupAssignmentTable(NetBoxTable):
52 interface_parent = tables.Column(
53 accessor=tables.A('interface__parent_object'),
54 linkify=True,
55 orderable=False,
56 verbose_name=_('Parent')
57 )
58 interface = tables.Column(
59 linkify=True,
60 orderable=False,
61 verbose_name=_('Interface'),
62 )
63 group = tables.Column(
64 verbose_name=_('Group'),
65 linkify=True
66 )
67 actions = columns.ActionsColumn(
68 actions=('edit', 'delete')
69 )
71 class Meta(NetBoxTable.Meta):
72 model = FHRPGroupAssignment
73 fields = ('pk', 'group', 'interface_parent', 'interface', 'priority')
74 exclude = ('id',)