Skip to content
Open
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
44 changes: 33 additions & 11 deletions netbox/circuits/forms/filtersets.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,11 @@
from tenancy.forms import TenancyFilterForm, ContactModelFilterForm
from utilities.forms import add_blank_choice
from utilities.forms.fields import ColorField, DynamicModelMultipleChoiceField, TagFilterField
from utilities.forms.filterset_mappings import FILTERSET_MAPPINGS
from utilities.forms.mixins import FilterModifierMixin
from utilities.forms.rendering import FieldSet
from utilities.forms.widgets import DatePicker, NumberWithOptions
from circuits.filtersets import *

__all__ = (
'CircuitFilterForm',
Expand All @@ -31,7 +34,7 @@
)


class ProviderFilterForm(ContactModelFilterForm, PrimaryModelFilterSetForm):
class ProviderFilterForm(FilterModifierMixin, ContactModelFilterForm, PrimaryModelFilterSetForm):
model = Provider
fieldsets = (
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
Expand Down Expand Up @@ -66,7 +69,7 @@ class ProviderFilterForm(ContactModelFilterForm, PrimaryModelFilterSetForm):
tag = TagFilterField(model)


class ProviderAccountFilterForm(ContactModelFilterForm, PrimaryModelFilterSetForm):
class ProviderAccountFilterForm(FilterModifierMixin, ContactModelFilterForm, PrimaryModelFilterSetForm):
model = ProviderAccount
fieldsets = (
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
Expand All @@ -85,7 +88,7 @@ class ProviderAccountFilterForm(ContactModelFilterForm, PrimaryModelFilterSetFor
tag = TagFilterField(model)


class ProviderNetworkFilterForm(PrimaryModelFilterSetForm):
class ProviderNetworkFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm):
model = ProviderNetwork
fieldsets = (
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
Expand All @@ -104,7 +107,7 @@ class ProviderNetworkFilterForm(PrimaryModelFilterSetForm):
tag = TagFilterField(model)


class CircuitTypeFilterForm(OrganizationalModelFilterSetForm):
class CircuitTypeFilterForm(FilterModifierMixin, OrganizationalModelFilterSetForm):
model = CircuitType
fieldsets = (
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
Expand All @@ -118,7 +121,7 @@ class CircuitTypeFilterForm(OrganizationalModelFilterSetForm):
)


class CircuitFilterForm(TenancyFilterForm, ContactModelFilterForm, PrimaryModelFilterSetForm):
class CircuitFilterForm(FilterModifierMixin, TenancyFilterForm, ContactModelFilterForm, PrimaryModelFilterSetForm):
model = Circuit
fieldsets = (
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
Expand Down Expand Up @@ -217,7 +220,7 @@ class CircuitFilterForm(TenancyFilterForm, ContactModelFilterForm, PrimaryModelF
tag = TagFilterField(model)


class CircuitTerminationFilterForm(NetBoxModelFilterSetForm):
class CircuitTerminationFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm):
model = CircuitTermination
fieldsets = (
FieldSet('q', 'filter_id', 'tag'),
Expand Down Expand Up @@ -271,7 +274,7 @@ class CircuitTerminationFilterForm(NetBoxModelFilterSetForm):
tag = TagFilterField(model)


class CircuitGroupFilterForm(TenancyFilterForm, OrganizationalModelFilterSetForm):
class CircuitGroupFilterForm(FilterModifierMixin, TenancyFilterForm, OrganizationalModelFilterSetForm):
model = CircuitGroup
fieldsets = (
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
Expand All @@ -280,7 +283,7 @@ class CircuitGroupFilterForm(TenancyFilterForm, OrganizationalModelFilterSetForm
tag = TagFilterField(model)


class CircuitGroupAssignmentFilterForm(NetBoxModelFilterSetForm):
class CircuitGroupAssignmentFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm):
model = CircuitGroupAssignment
fieldsets = (
FieldSet('q', 'filter_id', 'tag'),
Expand Down Expand Up @@ -309,7 +312,7 @@ class CircuitGroupAssignmentFilterForm(NetBoxModelFilterSetForm):
tag = TagFilterField(model)


class VirtualCircuitTypeFilterForm(OrganizationalModelFilterSetForm):
class VirtualCircuitTypeFilterForm(FilterModifierMixin, OrganizationalModelFilterSetForm):
model = VirtualCircuitType
fieldsets = (
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
Expand All @@ -323,7 +326,12 @@ class VirtualCircuitTypeFilterForm(OrganizationalModelFilterSetForm):
)


class VirtualCircuitFilterForm(TenancyFilterForm, ContactModelFilterForm, PrimaryModelFilterSetForm):
class VirtualCircuitFilterForm(
FilterModifierMixin,
TenancyFilterForm,
ContactModelFilterForm,
PrimaryModelFilterSetForm
):
model = VirtualCircuit
fieldsets = (
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
Expand Down Expand Up @@ -366,7 +374,7 @@ class VirtualCircuitFilterForm(TenancyFilterForm, ContactModelFilterForm, Primar
tag = TagFilterField(model)


class VirtualCircuitTerminationFilterForm(NetBoxModelFilterSetForm):
class VirtualCircuitTerminationFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm):
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any reason not to have NetBoxModelFilterSetForm inherit FilterModifierMixin upstream?

model = VirtualCircuitTermination
fieldsets = (
FieldSet('q', 'filter_id', 'tag'),
Expand Down Expand Up @@ -397,3 +405,17 @@ class VirtualCircuitTerminationFilterForm(NetBoxModelFilterSetForm):
label=_('Provider')
)
tag = TagFilterField(model)


# Register FilterSet mappings for FilterModifierMixin lookup verification
FILTERSET_MAPPINGS[ProviderFilterForm] = ProviderFilterSet
FILTERSET_MAPPINGS[ProviderAccountFilterForm] = ProviderAccountFilterSet
FILTERSET_MAPPINGS[ProviderNetworkFilterForm] = ProviderNetworkFilterSet
FILTERSET_MAPPINGS[CircuitTypeFilterForm] = CircuitTypeFilterSet
FILTERSET_MAPPINGS[CircuitFilterForm] = CircuitFilterSet
FILTERSET_MAPPINGS[CircuitTerminationFilterForm] = CircuitTerminationFilterSet
FILTERSET_MAPPINGS[CircuitGroupFilterForm] = CircuitGroupFilterSet
FILTERSET_MAPPINGS[CircuitGroupAssignmentFilterForm] = CircuitGroupAssignmentFilterSet
FILTERSET_MAPPINGS[VirtualCircuitTypeFilterForm] = VirtualCircuitTypeFilterSet
FILTERSET_MAPPINGS[VirtualCircuitFilterForm] = VirtualCircuitFilterSet
FILTERSET_MAPPINGS[VirtualCircuitTerminationFilterForm] = VirtualCircuitTerminationFilterSet
21 changes: 16 additions & 5 deletions netbox/core/forms/filtersets.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,11 @@
from utilities.forms.fields import (
ContentTypeChoiceField, ContentTypeMultipleChoiceField, DynamicModelMultipleChoiceField, TagFilterField,
)
from utilities.forms.filterset_mappings import FILTERSET_MAPPINGS
from utilities.forms.mixins import FilterModifierMixin
from utilities.forms.rendering import FieldSet
from utilities.forms.widgets import DateTimePicker
from core.filtersets import *

__all__ = (
'ConfigRevisionFilterForm',
Expand All @@ -23,7 +26,7 @@
)


class DataSourceFilterForm(PrimaryModelFilterSetForm):
class DataSourceFilterForm(FilterModifierMixin, PrimaryModelFilterSetForm):
model = DataSource
fieldsets = (
FieldSet('q', 'filter_id', 'tag', 'owner_id'),
Expand Down Expand Up @@ -54,7 +57,7 @@ class DataSourceFilterForm(PrimaryModelFilterSetForm):
tag = TagFilterField(model)


class DataFileFilterForm(NetBoxModelFilterSetForm):
class DataFileFilterForm(FilterModifierMixin, NetBoxModelFilterSetForm):
model = DataFile
fieldsets = (
FieldSet('q', 'filter_id'),
Expand All @@ -67,7 +70,7 @@ class DataFileFilterForm(NetBoxModelFilterSetForm):
)


class JobFilterForm(SavedFiltersMixin, FilterForm):
class JobFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm):
model = Job
fieldsets = (
FieldSet('q', 'filter_id'),
Expand Down Expand Up @@ -134,7 +137,7 @@ class JobFilterForm(SavedFiltersMixin, FilterForm):
)


class ObjectChangeFilterForm(SavedFiltersMixin, FilterForm):
class ObjectChangeFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm):
model = ObjectChange
fieldsets = (
FieldSet('q', 'filter_id'),
Expand Down Expand Up @@ -168,8 +171,16 @@ class ObjectChangeFilterForm(SavedFiltersMixin, FilterForm):
)


class ConfigRevisionFilterForm(SavedFiltersMixin, FilterForm):
class ConfigRevisionFilterForm(FilterModifierMixin, SavedFiltersMixin, FilterForm):
model = ConfigRevision
fieldsets = (
FieldSet('q', 'filter_id'),
)


# Register FilterSet mappings for FilterModifierMixin lookup verification
FILTERSET_MAPPINGS[DataSourceFilterForm] = DataSourceFilterSet
FILTERSET_MAPPINGS[DataFileFilterForm] = DataFileFilterSet
FILTERSET_MAPPINGS[JobFilterForm] = JobFilterSet
FILTERSET_MAPPINGS[ObjectChangeFilterForm] = ObjectChangeFilterSet
FILTERSET_MAPPINGS[ConfigRevisionFilterForm] = ConfigRevisionFilterSet
Loading