Skip to content

Commit 7794b67

Browse files
Fixes: #18013 - All saved filters showing up for Change Log table, regardless of defined object type (#18551)
* Setup ObjectChangeFilterForm __init__ to add query_param to filter_id * code lint, move __init__ to end of class * Move filter_id widget setup to SavedFiltersMixin, and add model attributes to Models FilterForms * Add missing model declarations for filter forms --------- Co-authored-by: Jeremy Stretch <[email protected]>
1 parent efa939d commit 7794b67

File tree

4 files changed

+21
-9
lines changed

4 files changed

+21
-9
lines changed

netbox/core/forms/filtersets.py

+2
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ class DataFileFilterForm(NetBoxModelFilterSetForm):
6262

6363

6464
class JobFilterForm(SavedFiltersMixin, FilterForm):
65+
model = Job
6566
fieldsets = (
6667
FieldSet('q', 'filter_id'),
6768
FieldSet('object_type', 'status', name=_('Attributes')),
@@ -162,6 +163,7 @@ class ObjectChangeFilterForm(SavedFiltersMixin, FilterForm):
162163

163164

164165
class ConfigRevisionFilterForm(SavedFiltersMixin, FilterForm):
166+
model = ConfigRevision
165167
fieldsets = (
166168
FieldSet('q', 'filter_id'),
167169
)

netbox/extras/forms/filtersets.py

+9
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737

3838

3939
class CustomFieldFilterForm(SavedFiltersMixin, FilterForm):
40+
model = CustomField
4041
fieldsets = (
4142
FieldSet('q', 'filter_id'),
4243
FieldSet(
@@ -115,6 +116,7 @@ class CustomFieldFilterForm(SavedFiltersMixin, FilterForm):
115116

116117

117118
class CustomFieldChoiceSetFilterForm(SavedFiltersMixin, FilterForm):
119+
model = CustomFieldChoiceSet
118120
fieldsets = (
119121
FieldSet('q', 'filter_id'),
120122
FieldSet('base_choices', 'choice', name=_('Choices')),
@@ -129,6 +131,7 @@ class CustomFieldChoiceSetFilterForm(SavedFiltersMixin, FilterForm):
129131

130132

131133
class CustomLinkFilterForm(SavedFiltersMixin, FilterForm):
134+
model = CustomLink
132135
fieldsets = (
133136
FieldSet('q', 'filter_id'),
134137
FieldSet('object_type', 'enabled', 'new_window', 'weight', name=_('Attributes')),
@@ -159,6 +162,7 @@ class CustomLinkFilterForm(SavedFiltersMixin, FilterForm):
159162

160163

161164
class ExportTemplateFilterForm(SavedFiltersMixin, FilterForm):
165+
model = ExportTemplate
162166
fieldsets = (
163167
FieldSet('q', 'filter_id'),
164168
FieldSet('data_source_id', 'data_file_id', name=_('Data')),
@@ -200,6 +204,7 @@ class ExportTemplateFilterForm(SavedFiltersMixin, FilterForm):
200204

201205

202206
class ImageAttachmentFilterForm(SavedFiltersMixin, FilterForm):
207+
model = ImageAttachment
203208
fieldsets = (
204209
FieldSet('q', 'filter_id'),
205210
FieldSet('object_type_id', 'name', name=_('Attributes')),
@@ -216,6 +221,7 @@ class ImageAttachmentFilterForm(SavedFiltersMixin, FilterForm):
216221

217222

218223
class SavedFilterFilterForm(SavedFiltersMixin, FilterForm):
224+
model = SavedFilter
219225
fieldsets = (
220226
FieldSet('q', 'filter_id'),
221227
FieldSet('object_type', 'enabled', 'shared', 'weight', name=_('Attributes')),
@@ -314,6 +320,7 @@ class TagFilterForm(SavedFiltersMixin, FilterForm):
314320

315321

316322
class ConfigContextFilterForm(SavedFiltersMixin, FilterForm):
323+
model = ConfigContext
317324
fieldsets = (
318325
FieldSet('q', 'filter_id', 'tag_id'),
319326
FieldSet('data_source_id', 'data_file_id', name=_('Data')),
@@ -403,6 +410,7 @@ class ConfigContextFilterForm(SavedFiltersMixin, FilterForm):
403410

404411

405412
class ConfigTemplateFilterForm(SavedFiltersMixin, FilterForm):
413+
model = ConfigTemplate
406414
fieldsets = (
407415
FieldSet('q', 'filter_id', 'tag'),
408416
FieldSet('data_source_id', 'data_file_id', name=_('Data')),
@@ -469,6 +477,7 @@ class JournalEntryFilterForm(NetBoxModelFilterSetForm):
469477

470478

471479
class NotificationGroupFilterForm(SavedFiltersMixin, FilterForm):
480+
model = NotificationGroup
472481
user_id = DynamicModelMultipleChoiceField(
473482
queryset=User.objects.all(),
474483
required=False,

netbox/netbox/forms/base.py

-9
Original file line numberDiff line numberDiff line change
@@ -169,15 +169,6 @@ class NetBoxModelFilterSetForm(CustomFieldsMixin, SavedFiltersMixin, forms.Form)
169169

170170
selector_fields = ('filter_id', 'q')
171171

172-
def __init__(self, *args, **kwargs):
173-
super().__init__(*args, **kwargs)
174-
175-
# Limit saved filters to those applicable to the form's model
176-
object_type = ObjectType.objects.get_for_model(self.model)
177-
self.fields['filter_id'].widget.add_query_params({
178-
'object_type_id': object_type.pk,
179-
})
180-
181172
def _get_custom_fields(self, content_type):
182173
return super()._get_custom_fields(content_type).exclude(
183174
Q(filter_logic=CustomFieldFilterLogicChoices.FILTER_DISABLED) |

netbox/netbox/forms/mixins.py

+10
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,16 @@ class SavedFiltersMixin(forms.Form):
7373
}
7474
)
7575

76+
def __init__(self, *args, **kwargs):
77+
super().__init__(*args, **kwargs)
78+
79+
# Limit saved filters to those applicable to the form's model
80+
if hasattr(self, 'model'):
81+
object_type = ObjectType.objects.get_for_model(self.model)
82+
self.fields['filter_id'].widget.add_query_params({
83+
'object_type_id': object_type.pk,
84+
})
85+
7686

7787
class TagsMixin(forms.Form):
7888
tags = DynamicModelMultipleChoiceField(

0 commit comments

Comments
 (0)