Coverage for tenancy/tables/tenants.py: 100%

21 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 NestedGroupModelTable, PrimaryModelTable, columns 

5from tenancy.models import * 

6from tenancy.tables import ContactsColumnMixin 

7 

8__all__ = ( 

9 'TenantGroupTable', 

10 'TenantTable', 

11) 

12 

13 

14class TenantGroupTable(NestedGroupModelTable): 

15 tenant_count = columns.LinkedCountColumn( 

16 viewname='tenancy:tenant_list', 

17 url_params={'group_id': 'pk'}, 

18 verbose_name=_('Tenants') 

19 ) 

20 tags = columns.TagColumn( 

21 url_name='tenancy:tenantgroup_list' 

22 ) 

23 

24 class Meta(NestedGroupModelTable.Meta): 

25 model = TenantGroup 

26 fields = ( 

27 'pk', 'id', 'name', 'parent', 'tenant_count', 'description', 'comments', 'slug', 'tags', 'created', 

28 'last_updated', 'actions', 

29 ) 

30 default_columns = ('pk', 'name', 'tenant_count', 'description') 

31 

32 

33class TenantTable(ContactsColumnMixin, PrimaryModelTable): 

34 name = tables.Column( 

35 verbose_name=_('Name'), 

36 linkify=True 

37 ) 

38 group = tables.Column( 

39 verbose_name=_('Group'), 

40 linkify=True 

41 ) 

42 tags = columns.TagColumn( 

43 url_name='tenancy:tenant_list' 

44 ) 

45 

46 class Meta(PrimaryModelTable.Meta): 

47 model = Tenant 

48 fields = ( 

49 'pk', 'id', 'name', 'slug', 'group', 'description', 'comments', 'contacts', 'tags', 'created', 

50 'last_updated', 

51 ) 

52 default_columns = ('pk', 'name', 'group', 'description')