Coverage for circuits/tables/virtual_circuits.py: 100%
40 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 circuits.models import *
5from netbox.tables import NetBoxTable, OrganizationalModelTable, PrimaryModelTable, columns
6from tenancy.tables import ContactsColumnMixin, TenancyColumnsMixin
8__all__ = (
9 'VirtualCircuitTable',
10 'VirtualCircuitTerminationTable',
11 'VirtualCircuitTypeTable',
12)
15class VirtualCircuitTypeTable(OrganizationalModelTable):
16 name = tables.Column(
17 linkify=True,
18 verbose_name=_('Name'),
19 )
20 color = columns.ColorColumn()
21 tags = columns.TagColumn(
22 url_name='circuits:virtualcircuittype_list'
23 )
24 virtual_circuit_count = columns.LinkedCountColumn(
25 viewname='circuits:virtualcircuit_list',
26 url_params={'type_id': 'pk'},
27 verbose_name=_('Circuits')
28 )
30 class Meta(OrganizationalModelTable.Meta):
31 model = VirtualCircuitType
32 fields = (
33 'pk', 'id', 'name', 'virtual_circuit_count', 'color', 'description', 'slug', 'tags', 'created',
34 'last_updated', 'actions',
35 )
36 default_columns = ('pk', 'name', 'virtual_circuit_count', 'color', 'description')
39class VirtualCircuitTable(TenancyColumnsMixin, ContactsColumnMixin, PrimaryModelTable):
40 cid = tables.Column(
41 linkify=True,
42 verbose_name=_('Circuit ID')
43 )
44 provider = tables.Column(
45 accessor=tables.A('provider_network__provider'),
46 verbose_name=_('Provider'),
47 linkify=True
48 )
49 provider_network = tables.Column(
50 linkify=True,
51 verbose_name=_('Provider network')
52 )
53 provider_account = tables.Column(
54 linkify=True,
55 verbose_name=_('Account')
56 )
57 type = columns.ColoredLabelColumn(
58 verbose_name=_('Type'),
59 )
60 status = columns.ChoiceFieldColumn()
61 termination_count = columns.LinkedCountColumn(
62 viewname='circuits:virtualcircuittermination_list',
63 url_params={'virtual_circuit_id': 'pk'},
64 verbose_name=_('Terminations')
65 )
66 tags = columns.TagColumn(
67 url_name='circuits:virtualcircuit_list'
68 )
70 class Meta(PrimaryModelTable.Meta):
71 model = VirtualCircuit
72 fields = (
73 'pk', 'id', 'cid', 'provider', 'provider_account', 'provider_network', 'type', 'status', 'tenant',
74 'tenant_group', 'description', 'comments', 'contacts', 'tags', 'created', 'last_updated',
75 )
76 default_columns = (
77 'pk', 'cid', 'provider', 'provider_account', 'provider_network', 'type', 'status', 'tenant',
78 'termination_count', 'description',
79 )
82class VirtualCircuitTerminationTable(NetBoxTable):
83 virtual_circuit = tables.Column(
84 verbose_name=_('Virtual circuit'),
85 linkify=True
86 )
87 provider = tables.Column(
88 accessor=tables.A('virtual_circuit__provider_network__provider'),
89 verbose_name=_('Provider'),
90 linkify=True
91 )
92 provider_network = tables.Column(
93 accessor=tables.A('virtual_circuit__provider_network'),
94 linkify=True,
95 verbose_name=_('Provider network')
96 )
97 provider_account = tables.Column(
98 accessor=tables.A('virtual_circuit__provider_account'),
99 linkify=True,
100 verbose_name=_('Account')
101 )
102 role = columns.ChoiceFieldColumn()
103 device = tables.Column(
104 accessor=tables.A('interface__device'),
105 linkify=True,
106 verbose_name=_('Device')
107 )
108 interface = tables.Column(
109 verbose_name=_('Interface'),
110 linkify=True
111 )
113 class Meta(NetBoxTable.Meta):
114 model = VirtualCircuitTermination
115 fields = (
116 'pk', 'id', 'virtual_circuit', 'provider', 'provider_network', 'provider_account', 'role', 'interface',
117 'description', 'created', 'last_updated', 'actions',
118 )
119 default_columns = (
120 'pk', 'id', 'virtual_circuit', 'role', 'device', 'interface', 'description',
121 )