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

1import django_tables2 as tables 

2from django.utils.translation import gettext_lazy as _ 

3 

4from netbox.tables import NetBoxTable, PrimaryModelTable, columns 

5from tenancy.tables import ContactsColumnMixin, TenancyColumnsMixin 

6from vpn.models import L2VPN, L2VPNTermination 

7 

8__all__ = ( 

9 'L2VPNTable', 

10 'L2VPNTerminationTable', 

11) 

12 

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""" 

18 

19 

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 ) 

42 

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

50 

51 

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 ) 

79 

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 )