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
« 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 _
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 *
15__all__ = (
16 'WirelessLANFilterForm',
17 'WirelessLANGroupFilterForm',
18 'WirelessLinkFilterForm',
19)
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)
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)
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)