Coverage for wireless/tables/wirelesslan.py: 100%

33 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 dcim.models import Interface 

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

6from tenancy.tables import TenancyColumnsMixin 

7from wireless.models import * 

8 

9__all__ = ( 

10 'WirelessLANGroupTable', 

11 'WirelessLANInterfacesTable', 

12 'WirelessLANTable', 

13) 

14 

15 

16class WirelessLANGroupTable(NestedGroupModelTable): 

17 wirelesslan_count = columns.LinkedCountColumn( 

18 viewname='wireless:wirelesslan_list', 

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

20 verbose_name=_('Wireless LANs') 

21 ) 

22 tags = columns.TagColumn( 

23 url_name='wireless:wirelesslangroup_list' 

24 ) 

25 

26 class Meta(NestedGroupModelTable.Meta): 

27 model = WirelessLANGroup 

28 fields = ( 

29 'pk', 'name', 'parent', 'slug', 'description', 'comments', 'tags', 'wirelesslan_count', 'created', 

30 'last_updated', 'actions', 

31 ) 

32 default_columns = ('pk', 'name', 'wirelesslan_count', 'description') 

33 

34 

35class WirelessLANTable(TenancyColumnsMixin, PrimaryModelTable): 

36 ssid = tables.Column( 

37 verbose_name=_('SSID'), 

38 linkify=True 

39 ) 

40 group = tables.Column( 

41 verbose_name=_('Group'), 

42 linkify=True 

43 ) 

44 status = columns.ChoiceFieldColumn( 

45 verbose_name=_('Status'), 

46 ) 

47 scope_type = columns.ContentTypeColumn( 

48 verbose_name=_('Scope Type'), 

49 ) 

50 scope = tables.Column( 

51 verbose_name=_('Scope'), 

52 linkify=True, 

53 orderable=False 

54 ) 

55 interface_count = tables.Column( 

56 verbose_name=_('Interfaces') 

57 ) 

58 tags = columns.TagColumn( 

59 url_name='wireless:wirelesslan_list' 

60 ) 

61 

62 class Meta(PrimaryModelTable.Meta): 

63 model = WirelessLAN 

64 fields = ( 

65 'pk', 'ssid', 'group', 'status', 'tenant', 'tenant_group', 'vlan', 'interface_count', 'auth_type', 

66 'auth_cipher', 'auth_psk', 'scope', 'scope_type', 'description', 'comments', 'tags', 'created', 

67 'last_updated', 

68 ) 

69 default_columns = ('pk', 'ssid', 'group', 'status', 'description', 'vlan', 'auth_type', 'interface_count') 

70 

71 

72class WirelessLANInterfacesTable(NetBoxTable): 

73 device = tables.Column( 

74 verbose_name=_('Device'), 

75 linkify=True 

76 ) 

77 name = tables.Column( 

78 verbose_name=_('Name'), 

79 linkify=True 

80 ) 

81 

82 class Meta(NetBoxTable.Meta): 

83 model = Interface 

84 fields = ('pk', 'device', 'name', 'rf_role', 'rf_channel') 

85 default_columns = ('pk', 'device', 'name', 'rf_role', 'rf_channel')