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
« 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 netbox.tables import NestedGroupModelTable, PrimaryModelTable, columns
5from tenancy.models import *
6from tenancy.tables import ContactsColumnMixin
8__all__ = (
9 'TenantGroupTable',
10 'TenantTable',
11)
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 )
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')
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 )
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')