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

1import django_tables2 as tables 

2from django.utils.translation import gettext_lazy as _ 

3 

4from ipam.models import * 

5from netbox.tables import PrimaryModelTable, columns 

6from tenancy.tables import TenancyColumnsMixin 

7 

8__all__ = ( 

9 'RouteTargetTable', 

10 'VRFTable', 

11) 

12 

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

18 

19 

20# 

21# VRFs 

22# 

23 

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 ) 

49 

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

57 

58 

59# 

60# Route targets 

61# 

62 

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 ) 

71 

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