Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions netbox/core/forms/filtersets.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ class DataFileFilterForm(NetBoxModelFilterSetForm):


class JobFilterForm(SavedFiltersMixin, FilterForm):
model = Job
fieldsets = (
FieldSet('q', 'filter_id'),
FieldSet('object_type', 'status', name=_('Attributes')),
Expand Down Expand Up @@ -162,6 +163,7 @@ class ObjectChangeFilterForm(SavedFiltersMixin, FilterForm):


class ConfigRevisionFilterForm(SavedFiltersMixin, FilterForm):
model = ConfigRevision
fieldsets = (
FieldSet('q', 'filter_id'),
)
9 changes: 9 additions & 0 deletions netbox/extras/forms/filtersets.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@


class CustomFieldFilterForm(SavedFiltersMixin, FilterForm):
model = CustomField
fieldsets = (
FieldSet('q', 'filter_id'),
FieldSet(
Expand Down Expand Up @@ -115,6 +116,7 @@ class CustomFieldFilterForm(SavedFiltersMixin, FilterForm):


class CustomFieldChoiceSetFilterForm(SavedFiltersMixin, FilterForm):
model = CustomFieldChoiceSet
fieldsets = (
FieldSet('q', 'filter_id'),
FieldSet('base_choices', 'choice', name=_('Choices')),
Expand All @@ -129,6 +131,7 @@ class CustomFieldChoiceSetFilterForm(SavedFiltersMixin, FilterForm):


class CustomLinkFilterForm(SavedFiltersMixin, FilterForm):
model = CustomLink
fieldsets = (
FieldSet('q', 'filter_id'),
FieldSet('object_type', 'enabled', 'new_window', 'weight', name=_('Attributes')),
Expand Down Expand Up @@ -159,6 +162,7 @@ class CustomLinkFilterForm(SavedFiltersMixin, FilterForm):


class ExportTemplateFilterForm(SavedFiltersMixin, FilterForm):
model = ExportTemplate
fieldsets = (
FieldSet('q', 'filter_id'),
FieldSet('data_source_id', 'data_file_id', name=_('Data')),
Expand Down Expand Up @@ -200,6 +204,7 @@ class ExportTemplateFilterForm(SavedFiltersMixin, FilterForm):


class ImageAttachmentFilterForm(SavedFiltersMixin, FilterForm):
model = ImageAttachment
fieldsets = (
FieldSet('q', 'filter_id'),
FieldSet('object_type_id', 'name', name=_('Attributes')),
Expand All @@ -216,6 +221,7 @@ class ImageAttachmentFilterForm(SavedFiltersMixin, FilterForm):


class SavedFilterFilterForm(SavedFiltersMixin, FilterForm):
model = SavedFilter
fieldsets = (
FieldSet('q', 'filter_id'),
FieldSet('object_type', 'enabled', 'shared', 'weight', name=_('Attributes')),
Expand Down Expand Up @@ -314,6 +320,7 @@ class TagFilterForm(SavedFiltersMixin, FilterForm):


class ConfigContextFilterForm(SavedFiltersMixin, FilterForm):
model = ConfigContext
fieldsets = (
FieldSet('q', 'filter_id', 'tag_id'),
FieldSet('data_source_id', 'data_file_id', name=_('Data')),
Expand Down Expand Up @@ -403,6 +410,7 @@ class ConfigContextFilterForm(SavedFiltersMixin, FilterForm):


class ConfigTemplateFilterForm(SavedFiltersMixin, FilterForm):
model = ConfigTemplate
fieldsets = (
FieldSet('q', 'filter_id', 'tag'),
FieldSet('data_source_id', 'data_file_id', name=_('Data')),
Expand Down Expand Up @@ -469,6 +477,7 @@ class JournalEntryFilterForm(NetBoxModelFilterSetForm):


class NotificationGroupFilterForm(SavedFiltersMixin, FilterForm):
model = NotificationGroup
user_id = DynamicModelMultipleChoiceField(
queryset=User.objects.all(),
required=False,
Expand Down
9 changes: 0 additions & 9 deletions netbox/netbox/forms/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -169,15 +169,6 @@ class NetBoxModelFilterSetForm(CustomFieldsMixin, SavedFiltersMixin, forms.Form)

selector_fields = ('filter_id', 'q')

def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)

# Limit saved filters to those applicable to the form's model
object_type = ObjectType.objects.get_for_model(self.model)
self.fields['filter_id'].widget.add_query_params({
'object_type_id': object_type.pk,
})

def _get_custom_fields(self, content_type):
return super()._get_custom_fields(content_type).exclude(
Q(filter_logic=CustomFieldFilterLogicChoices.FILTER_DISABLED) |
Expand Down
10 changes: 10 additions & 0 deletions netbox/netbox/forms/mixins.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,16 @@ class SavedFiltersMixin(forms.Form):
}
)

def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)

# Limit saved filters to those applicable to the form's model
if hasattr(self, 'model'):
object_type = ObjectType.objects.get_for_model(self.model)
self.fields['filter_id'].widget.add_query_params({
'object_type_id': object_type.pk,
})


class TagsMixin(forms.Form):
tags = DynamicModelMultipleChoiceField(
Expand Down