Coverage for ipam/tables/vrfs.py: 100%
25 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 PrimaryModelTable, columns
6from tenancy.tables import TenancyColumnsMixin
8__all__ = (
9 'RouteTargetTable',
10 'VRFTable',
11)
13VRF_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"""
20#
21# VRFs
22#
24class VRFTable(TenancyColumnsMixin, PrimaryModelTable):
25 name = tables.Column(
26 verbose_name=_('Name'),
27 linkify=True
28 )
29 rd = tables.Column(
30 verbose_name=_('RD')
31 )
32 enforce_unique = columns.BooleanColumn(
33 verbose_name=_('Unique'),
34 false_mark=None
35 )
36 import_targets = columns.TemplateColumn(
37 verbose_name=_('Import Targets'),
38 template_code=VRF_TARGETS,
39 orderable=False
40 )
41 export_targets = columns.TemplateColumn(
42 verbose_name=_('Export Targets'),
43 template_code=VRF_TARGETS,
44 orderable=False
45 )
46 tags = columns.TagColumn(
47 url_name='ipam:vrf_list'
48 )
50 class Meta(PrimaryModelTable.Meta):
51 model = VRF
52 fields = (
53 'pk', 'id', 'name', 'rd', 'tenant', 'tenant_group', 'enforce_unique', 'import_targets', 'export_targets',
54 'description', 'comments', 'tags', 'created', 'last_updated',
55 )
56 default_columns = ('pk', 'name', 'rd', 'tenant', 'description')
59#
60# Route targets
61#
63class RouteTargetTable(TenancyColumnsMixin, PrimaryModelTable):
64 name = tables.Column(
65 verbose_name=_('Name'),
66 linkify=True
67 )
68 tags = columns.TagColumn(
69 url_name='ipam:routetarget_list'
70 )
72 class Meta(PrimaryModelTable.Meta):
73 model = RouteTarget
74 fields = (
75 'pk', 'id', 'name', 'tenant', 'tenant_group', 'description', 'comments', 'tags', 'created', 'last_updated',
76 )
77 default_columns = ('pk', 'name', 'tenant', 'description')