Coverage for tenancy/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 core.models import ObjectType
5from netbox.forms import (
6 NestedGroupModelFilterSetForm,
7 NetBoxModelFilterSetForm,
8 OrganizationalModelFilterSetForm,
9 PrimaryModelFilterSetForm,
10)
11from utilities.forms.fields import (
12 ContentTypeMultipleChoiceField,
13 DynamicModelMultipleChoiceField,
14 TagFilterField,
15)
16from utilities.forms.rendering import FieldSet
18from ..choices import *
19from ..models import *
20from .forms import ContactModelFilterForm
22__all__ = (
23 'ContactAssignmentFilterForm',
24 'ContactFilterForm',
25 'ContactGroupFilterForm',
26 'ContactRoleFilterForm',
27 'TenantFilterForm',
28 'TenantGroupFilterForm',
29)
32#
33# Tenants
34#
36class TenantGroupFilterForm(NestedGroupModelFilterSetForm):
37 model = TenantGroup
38 fieldsets = (
39 FieldSet('q', 'filter_id', 'tag'),
40 FieldSet('parent_id', name=_('Tenant Group')),
41 FieldSet('owner_group_id', 'owner_id', name=_('Ownership')),
42 )
43 parent_id = DynamicModelMultipleChoiceField(
44 queryset=TenantGroup.objects.all(),
45 required=False,
46 label=_('Parent group')
47 )
48 tag = TagFilterField(model)
51class TenantFilterForm(ContactModelFilterForm, PrimaryModelFilterSetForm):
52 model = Tenant
53 fieldsets = (
54 FieldSet('q', 'filter_id', 'tag'),
55 FieldSet('group_id', name=_('Tenant')),
56 FieldSet('owner_group_id', 'owner_id', name=_('Ownership')),
57 FieldSet('contact', 'contact_role', 'contact_group', name=_('Contacts'))
58 )
59 group_id = DynamicModelMultipleChoiceField(
60 queryset=TenantGroup.objects.all(),
61 required=False,
62 null_option='None',
63 label=_('Group')
64 )
65 tag = TagFilterField(model)
68#
69# Contacts
70#
72class ContactGroupFilterForm(NestedGroupModelFilterSetForm):
73 model = ContactGroup
74 fieldsets = (
75 FieldSet('q', 'filter_id', 'tag'),
76 FieldSet('parent_id', name=_('Contact Group')),
77 FieldSet('owner_group_id', 'owner_id', name=_('Ownership')),
78 )
79 parent_id = DynamicModelMultipleChoiceField(
80 queryset=ContactGroup.objects.all(),
81 required=False,
82 label=_('Parent group')
83 )
84 tag = TagFilterField(model)
87class ContactRoleFilterForm(OrganizationalModelFilterSetForm):
88 model = ContactRole
89 fieldsets = (
90 FieldSet('q', 'filter_id', 'tag'),
91 FieldSet('owner_group_id', 'owner_id', name=_('Ownership')),
92 )
93 tag = TagFilterField(model)
96class ContactFilterForm(PrimaryModelFilterSetForm):
97 model = Contact
98 fieldsets = (
99 FieldSet('q', 'filter_id', 'tag'),
100 FieldSet('group_id', name=_('Contact')),
101 FieldSet('owner_group_id', 'owner_id', name=_('Ownership')),
102 )
103 group_id = DynamicModelMultipleChoiceField(
104 queryset=ContactGroup.objects.all(),
105 required=False,
106 null_option='None',
107 label=_('Groups')
108 )
109 tag = TagFilterField(model)
112class ContactAssignmentFilterForm(NetBoxModelFilterSetForm):
113 model = ContactAssignment
114 fieldsets = (
115 FieldSet('q', 'filter_id', 'tag'),
116 FieldSet('object_type_id', 'group_id', 'contact_id', 'role_id', 'priority', name=_('Assignment')),
117 )
118 object_type_id = ContentTypeMultipleChoiceField(
119 queryset=ObjectType.objects.with_feature('contacts'),
120 required=False,
121 label=_('Object type')
122 )
123 group_id = DynamicModelMultipleChoiceField(
124 queryset=ContactGroup.objects.all(),
125 required=False,
126 label=_('Group')
127 )
128 contact_id = DynamicModelMultipleChoiceField(
129 queryset=Contact.objects.all(),
130 required=False,
131 label=_('Contact')
132 )
133 role_id = DynamicModelMultipleChoiceField(
134 queryset=ContactRole.objects.all(),
135 required=False,
136 label=_('Role')
137 )
138 priority = forms.MultipleChoiceField(
139 label=_('Priority'),
140 choices=ContactPriorityChoices,
141 required=False
142 )
143 tag = TagFilterField(model)