Coverage for vpn/tables/l2vpn.py: 100%
30 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 netbox.tables import NetBoxTable, PrimaryModelTable, columns
5from tenancy.tables import ContactsColumnMixin, TenancyColumnsMixin
6from vpn.models import L2VPN, L2VPNTermination
8__all__ = (
9 'L2VPNTable',
10 'L2VPNTerminationTable',
11)
13L2VPN_TARGETS = """
14{% for rt in value.all %}
15 <a href="{{ rt.get_absolute_url }}">{{ rt }}</a>{% if not forloop.last %}<br />{% endif %}
16{% endfor %}
17"""
20class L2VPNTable(TenancyColumnsMixin, ContactsColumnMixin, PrimaryModelTable):
21 pk = columns.ToggleColumn()
22 name = tables.Column(
23 verbose_name=_('Name'),
24 linkify=True
25 )
26 status = columns.ChoiceFieldColumn(
27 verbose_name=_('Status')
28 )
29 import_targets = columns.TemplateColumn(
30 verbose_name=_('Import Targets'),
31 template_code=L2VPN_TARGETS,
32 orderable=False
33 )
34 export_targets = columns.TemplateColumn(
35 verbose_name=_('Export Targets'),
36 template_code=L2VPN_TARGETS,
37 orderable=False
38 )
39 tags = columns.TagColumn(
40 url_name='vpn:l2vpn_list'
41 )
43 class Meta(PrimaryModelTable.Meta):
44 model = L2VPN
45 fields = (
46 'pk', 'name', 'slug', 'status', 'identifier', 'type', 'import_targets', 'export_targets', 'tenant',
47 'tenant_group', 'description', 'contacts', 'comments', 'tags', 'created', 'last_updated',
48 )
49 default_columns = ('pk', 'name', 'status', 'identifier', 'type', 'description')
52class L2VPNTerminationTable(NetBoxTable):
53 pk = columns.ToggleColumn()
54 l2vpn = tables.Column(
55 verbose_name=_('L2VPN'),
56 linkify=True
57 )
58 assigned_object_type = columns.ContentTypeColumn(
59 verbose_name=_('Object Type')
60 )
61 assigned_object = tables.Column(
62 linkify=True,
63 orderable=False,
64 verbose_name=_('Object')
65 )
66 assigned_object_parent = tables.Column(
67 linkify=True,
68 orderable=False,
69 verbose_name=_('Object Parent')
70 )
71 assigned_object_site = tables.Column(
72 linkify=True,
73 orderable=False,
74 verbose_name=_('Object Site')
75 )
76 tags = columns.TagColumn(
77 url_name='vpn:l2vpntermination_list'
78 )
80 class Meta(NetBoxTable.Meta):
81 model = L2VPNTermination
82 fields = (
83 'pk', 'l2vpn', 'assigned_object_type', 'assigned_object', 'assigned_object_parent', 'assigned_object_site',
84 'tags', 'actions',
85 )
86 default_columns = (
87 'pk', 'l2vpn', 'assigned_object_type', 'assigned_object_parent', 'assigned_object', 'actions',
88 )