Coverage for wireless/forms/filtersets.py: 100%

43 statements  

« prev     ^ index     » next       coverage.py v7.15.2, created at 2026-10-10 18:35 +0000

1from django import forms 

2from django.utils.translation import gettext_lazy as _ 

3 

4from dcim.choices import LinkStatusChoices 

5from dcim.models import Location, Region, Site, SiteGroup 

6from netbox.choices import * 

7from netbox.forms import NestedGroupModelFilterSetForm, PrimaryModelFilterSetForm 

8from tenancy.forms import TenancyFilterForm 

9from utilities.forms import add_blank_choice 

10from utilities.forms.fields import DynamicModelMultipleChoiceField, TagFilterField 

11from utilities.forms.rendering import FieldSet 

12from wireless.choices import * 

13from wireless.models import * 

14 

15__all__ = ( 

16 'WirelessLANFilterForm', 

17 'WirelessLANGroupFilterForm', 

18 'WirelessLinkFilterForm', 

19) 

20 

21 

22class WirelessLANGroupFilterForm(NestedGroupModelFilterSetForm): 

23 model = WirelessLANGroup 

24 fieldsets = ( 

25 FieldSet('q', 'filter_id', 'tag'), 

26 FieldSet('parent_id', name=_('Wireless LAN group')), 

27 FieldSet('owner_group_id', 'owner_id', name=_('Ownership')), 

28 ) 

29 parent_id = DynamicModelMultipleChoiceField( 

30 queryset=WirelessLANGroup.objects.all(), 

31 required=False, 

32 label=_('Parent group') 

33 ) 

34 tag = TagFilterField(model) 

35 

36 

37class WirelessLANFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm): 

38 model = WirelessLAN 

39 fieldsets = ( 

40 FieldSet('q', 'filter_id', 'tag'), 

41 FieldSet('ssid', 'group_id', 'status', name=_('Attributes')), 

42 FieldSet('region_id', 'site_group_id', 'site_id', 'location_id', name=_('Scope')), 

43 FieldSet('auth_type', 'auth_cipher', 'auth_psk', name=_('Authentication')), 

44 FieldSet('tenant_group_id', 'tenant_id', name=_('Tenant')), 

45 FieldSet('owner_group_id', 'owner_id', name=_('Ownership')), 

46 ) 

47 ssid = forms.CharField( 

48 required=False, 

49 label=_('SSID') 

50 ) 

51 group_id = DynamicModelMultipleChoiceField( 

52 queryset=WirelessLANGroup.objects.all(), 

53 required=False, 

54 null_option='None', 

55 label=_('Group') 

56 ) 

57 status = forms.ChoiceField( 

58 label=_('Status'), 

59 required=False, 

60 choices=add_blank_choice(WirelessLANStatusChoices) 

61 ) 

62 auth_type = forms.ChoiceField( 

63 label=_('Authentication type'), 

64 required=False, 

65 choices=add_blank_choice(WirelessAuthTypeChoices) 

66 ) 

67 auth_cipher = forms.ChoiceField( 

68 label=_('Authentication cipher'), 

69 required=False, 

70 choices=add_blank_choice(WirelessAuthCipherChoices) 

71 ) 

72 auth_psk = forms.CharField( 

73 label=_('Pre-shared key'), 

74 required=False 

75 ) 

76 region_id = DynamicModelMultipleChoiceField( 

77 queryset=Region.objects.all(), 

78 required=False, 

79 label=_('Region') 

80 ) 

81 site_group_id = DynamicModelMultipleChoiceField( 

82 queryset=SiteGroup.objects.all(), 

83 required=False, 

84 label=_('Site group') 

85 ) 

86 site_id = DynamicModelMultipleChoiceField( 

87 queryset=Site.objects.all(), 

88 required=False, 

89 null_option='None', 

90 query_params={ 

91 'region_id': '$region_id', 

92 'site_group_id': '$site_group_id', 

93 }, 

94 label=_('Site') 

95 ) 

96 location_id = DynamicModelMultipleChoiceField( 

97 queryset=Location.objects.all(), 

98 required=False, 

99 label=_('Location') 

100 ) 

101 tag = TagFilterField(model) 

102 

103 

104class WirelessLinkFilterForm(TenancyFilterForm, PrimaryModelFilterSetForm): 

105 model = WirelessLink 

106 fieldsets = ( 

107 FieldSet('q', 'filter_id', 'tag'), 

108 FieldSet('ssid', 'status', 'distance', 'distance_unit', name=_('Attributes')), 

109 FieldSet('auth_type', 'auth_cipher', 'auth_psk', name=_('Authentication')), 

110 FieldSet('tenant_group_id', 'tenant_id', name=_('Tenant')), 

111 FieldSet('owner_group_id', 'owner_id', name=_('Ownership')), 

112 ) 

113 ssid = forms.CharField( 

114 required=False, 

115 label=_('SSID') 

116 ) 

117 status = forms.ChoiceField( 

118 label=_('Status'), 

119 required=False, 

120 choices=add_blank_choice(LinkStatusChoices) 

121 ) 

122 auth_type = forms.ChoiceField( 

123 label=_('Authentication type'), 

124 required=False, 

125 choices=add_blank_choice(WirelessAuthTypeChoices) 

126 ) 

127 auth_cipher = forms.ChoiceField( 

128 label=_('Authentication cipher'), 

129 required=False, 

130 choices=add_blank_choice(WirelessAuthCipherChoices) 

131 ) 

132 auth_psk = forms.CharField( 

133 label=_('Pre-shared key'), 

134 required=False 

135 ) 

136 distance = forms.DecimalField( 

137 label=_('Distance'), 

138 required=False, 

139 ) 

140 distance_unit = forms.ChoiceField( 

141 label=_('Distance unit'), 

142 choices=add_blank_choice(DistanceUnitChoices), 

143 required=False 

144 ) 

145 tag = TagFilterField(model)