Enable filter form modifiers on Extras models

This commit is contained in:
Jason Novinger 2025-11-07 16:49:53 -06:00
parent 99781888d3
commit fd9a6b958b

View File

@ -15,9 +15,12 @@ from utilities.forms.fields import (
ContentTypeChoiceField, ContentTypeMultipleChoiceField, DynamicModelChoiceField, DynamicModelMultipleChoiceField, ContentTypeChoiceField, ContentTypeMultipleChoiceField, DynamicModelChoiceField, DynamicModelMultipleChoiceField,
TagFilterField, TagFilterField,
) )
from utilities.forms.filterset_mappings import FILTERSET_MAPPINGS
from utilities.forms.mixins import FilterModifierMixin
from utilities.forms.rendering import FieldSet from utilities.forms.rendering import FieldSet
from utilities.forms.widgets import DateTimePicker from utilities.forms.widgets import DateTimePicker
from virtualization.models import Cluster, ClusterGroup, ClusterType from virtualization.models import Cluster, ClusterGroup, ClusterType
from extras.filtersets import *
__all__ = ( __all__ = (
'ConfigContextFilterForm', 'ConfigContextFilterForm',
@ -39,7 +42,7 @@ __all__ = (
) )
class CustomFieldFilterForm(SavedFiltersMixin, FilterForm): class CustomFieldFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm):
model = CustomField model = CustomField
fieldsets = ( fieldsets = (
FieldSet('q', 'filter_id'), FieldSet('q', 'filter_id'),
@ -126,7 +129,7 @@ class CustomFieldFilterForm(SavedFiltersMixin, FilterForm):
) )
class CustomFieldChoiceSetFilterForm(SavedFiltersMixin, FilterForm): class CustomFieldChoiceSetFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm):
model = CustomFieldChoiceSet model = CustomFieldChoiceSet
fieldsets = ( fieldsets = (
FieldSet('q', 'filter_id'), FieldSet('q', 'filter_id'),
@ -146,7 +149,7 @@ class CustomFieldChoiceSetFilterForm(SavedFiltersMixin, FilterForm):
) )
class CustomLinkFilterForm(SavedFiltersMixin, FilterForm): class CustomLinkFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm):
model = CustomLink model = CustomLink
fieldsets = ( fieldsets = (
FieldSet('q', 'filter_id'), FieldSet('q', 'filter_id'),
@ -182,7 +185,7 @@ class CustomLinkFilterForm(SavedFiltersMixin, FilterForm):
) )
class ExportTemplateFilterForm(SavedFiltersMixin, FilterForm): class ExportTemplateFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm):
model = ExportTemplate model = ExportTemplate
fieldsets = ( fieldsets = (
FieldSet('q', 'filter_id', 'object_type_id'), FieldSet('q', 'filter_id', 'object_type_id'),
@ -233,7 +236,7 @@ class ExportTemplateFilterForm(SavedFiltersMixin, FilterForm):
) )
class ImageAttachmentFilterForm(SavedFiltersMixin, FilterForm): class ImageAttachmentFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm):
model = ImageAttachment model = ImageAttachment
fieldsets = ( fieldsets = (
FieldSet('q', 'filter_id'), FieldSet('q', 'filter_id'),
@ -250,7 +253,7 @@ class ImageAttachmentFilterForm(SavedFiltersMixin, FilterForm):
) )
class SavedFilterFilterForm(SavedFiltersMixin, FilterForm): class SavedFilterFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm):
model = SavedFilter model = SavedFilter
fieldsets = ( fieldsets = (
FieldSet('q', 'filter_id'), FieldSet('q', 'filter_id'),
@ -286,7 +289,7 @@ class SavedFilterFilterForm(SavedFiltersMixin, FilterForm):
) )
class TableConfigFilterForm(SavedFiltersMixin, FilterForm): class TableConfigFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm):
fieldsets = ( fieldsets = (
FieldSet('q', 'filter_id'), FieldSet('q', 'filter_id'),
FieldSet('object_type_id', 'enabled', 'shared', 'weight', name=_('Attributes')), FieldSet('object_type_id', 'enabled', 'shared', 'weight', name=_('Attributes')),
@ -316,7 +319,7 @@ class TableConfigFilterForm(SavedFiltersMixin, FilterForm):
) )
class WebhookFilterForm(NetBoxModelFilterSetForm): class WebhookFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm):
model = Webhook model = Webhook
fieldsets = ( fieldsets = (
FieldSet('q', 'filter_id', 'tag', 'owner_id'), FieldSet('q', 'filter_id', 'tag', 'owner_id'),
@ -343,7 +346,7 @@ class WebhookFilterForm(NetBoxModelFilterSetForm):
tag = TagFilterField(model) tag = TagFilterField(model)
class EventRuleFilterForm(NetBoxModelFilterSetForm): class EventRuleFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm):
model = EventRule model = EventRule
fieldsets = ( fieldsets = (
FieldSet('q', 'filter_id', 'tag', 'owner_id'), FieldSet('q', 'filter_id', 'tag', 'owner_id'),
@ -379,7 +382,7 @@ class EventRuleFilterForm(NetBoxModelFilterSetForm):
tag = TagFilterField(model) tag = TagFilterField(model)
class TagFilterForm(SavedFiltersMixin, FilterForm): class TagFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm):
model = Tag model = Tag
content_type_id = ContentTypeMultipleChoiceField( content_type_id = ContentTypeMultipleChoiceField(
queryset=ObjectType.objects.with_feature('tags'), queryset=ObjectType.objects.with_feature('tags'),
@ -398,7 +401,7 @@ class TagFilterForm(SavedFiltersMixin, FilterForm):
) )
class ConfigContextProfileFilterForm(PrimaryModelFilterSetForm): class ConfigContextProfileFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm):
model = ConfigContextProfile model = ConfigContextProfile
fieldsets = ( fieldsets = (
FieldSet('q', 'filter_id'), FieldSet('q', 'filter_id'),
@ -419,7 +422,7 @@ class ConfigContextProfileFilterForm(PrimaryModelFilterSetForm):
) )
class ConfigContextFilterForm(SavedFiltersMixin, FilterForm): class ConfigContextFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm):
model = ConfigContext model = ConfigContext
fieldsets = ( fieldsets = (
FieldSet('q', 'filter_id', 'tag_id'), FieldSet('q', 'filter_id', 'tag_id'),
@ -520,7 +523,7 @@ class ConfigContextFilterForm(SavedFiltersMixin, FilterForm):
) )
class ConfigTemplateFilterForm(SavedFiltersMixin, FilterForm): class ConfigTemplateFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm):
model = ConfigTemplate model = ConfigTemplate
fieldsets = ( fieldsets = (
FieldSet('q', 'filter_id', 'tag'), FieldSet('q', 'filter_id', 'tag'),
@ -584,7 +587,7 @@ class LocalConfigContextFilterForm(forms.Form):
) )
class JournalEntryFilterForm(NetBoxModelFilterSetForm): class JournalEntryFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm):
model = JournalEntry model = JournalEntry
fieldsets = ( fieldsets = (
FieldSet('q', 'filter_id', 'tag'), FieldSet('q', 'filter_id', 'tag'),
@ -619,7 +622,7 @@ class JournalEntryFilterForm(NetBoxModelFilterSetForm):
tag = TagFilterField(model) tag = TagFilterField(model)
class NotificationGroupFilterForm(SavedFiltersMixin, FilterForm): class NotificationGroupFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm):
model = NotificationGroup model = NotificationGroup
user_id = DynamicModelMultipleChoiceField( user_id = DynamicModelMultipleChoiceField(
queryset=User.objects.all(), queryset=User.objects.all(),
@ -631,3 +634,21 @@ class NotificationGroupFilterForm(SavedFiltersMixin, FilterForm):
required=False, required=False,
label=_('Group') label=_('Group')
) )
# Register FilterSet mappings for FilterModifierMixin lookup verification
FILTERSET_MAPPINGS[CustomFieldFilterForm] = CustomFieldFilterSet
FILTERSET_MAPPINGS[CustomFieldChoiceSetFilterForm] = CustomFieldChoiceSetFilterSet
FILTERSET_MAPPINGS[CustomLinkFilterForm] = CustomLinkFilterSet
FILTERSET_MAPPINGS[ExportTemplateFilterForm] = ExportTemplateFilterSet
FILTERSET_MAPPINGS[ImageAttachmentFilterForm] = ImageAttachmentFilterSet
FILTERSET_MAPPINGS[SavedFilterFilterForm] = SavedFilterFilterSet
FILTERSET_MAPPINGS[TableConfigFilterForm] = TableConfigFilterSet
FILTERSET_MAPPINGS[WebhookFilterForm] = WebhookFilterSet
FILTERSET_MAPPINGS[EventRuleFilterForm] = EventRuleFilterSet
FILTERSET_MAPPINGS[TagFilterForm] = TagFilterSet
FILTERSET_MAPPINGS[ConfigContextProfileFilterForm] = ConfigContextProfileFilterSet
FILTERSET_MAPPINGS[ConfigContextFilterForm] = ConfigContextFilterSet
FILTERSET_MAPPINGS[ConfigTemplateFilterForm] = ConfigTemplateFilterSet
FILTERSET_MAPPINGS[JournalEntryFilterForm] = JournalEntryFilterSet
FILTERSET_MAPPINGS[NotificationGroupFilterForm] = NotificationGroupFilterSet