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

1import django_tables2 as tables 

2from django.utils.translation import gettext_lazy as _ 

3 

4from circuits.models import * 

5from netbox.tables import NetBoxTable, OrganizationalModelTable, PrimaryModelTable, columns 

6from tenancy.tables import ContactsColumnMixin, TenancyColumnsMixin 

7 

8__all__ = ( 

9 'VirtualCircuitTable', 

10 'VirtualCircuitTerminationTable', 

11 'VirtualCircuitTypeTable', 

12) 

13 

14 

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 ) 

29 

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') 

37 

38 

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 ) 

69 

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 ) 

80 

81 

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 ) 

112 

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 )