|
|
@@ -23,7 +23,8 @@ from utilities.forms import (
|
|
|
APISelect, APISelectMultiple, add_blank_choice, ArrayFieldSelectMultiple, BootstrapMixin, BulkEditForm,
|
|
|
BulkEditNullBooleanSelect, ChainedFieldsMixin, ChainedModelChoiceField, ColorSelect, CommentField, ComponentForm,
|
|
|
ConfirmationForm, CSVChoiceField, ExpandableNameField, FilterChoiceField, FlexibleModelChoiceField, JSONField,
|
|
|
- SelectWithPK, SmallTextarea, SlugField, StaticSelect2, StaticSelect2Multiple, BOOLEAN_WITH_BLANK_CHOICES
|
|
|
+ SelectWithPK, SmallTextarea, SlugField, StaticSelect2, StaticSelect2Multiple, TagFilterField,
|
|
|
+ BOOLEAN_WITH_BLANK_CHOICES
|
|
|
)
|
|
|
from virtualization.models import Cluster, ClusterGroup
|
|
|
from .constants import *
|
|
|
@@ -335,6 +336,10 @@ class SiteFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldFilterForm):
|
|
|
)
|
|
|
)
|
|
|
|
|
|
+ def __init__(self, *args, **kwargs):
|
|
|
+ super().__init__(*args, **kwargs)
|
|
|
+ self.fields['tag'] = TagFilterField(self.model)
|
|
|
+
|
|
|
|
|
|
#
|
|
|
# Rack groups
|
|
|
@@ -713,6 +718,10 @@ class RackFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldFilterForm):
|
|
|
)
|
|
|
)
|
|
|
|
|
|
+ def __init__(self, *args, **kwargs):
|
|
|
+ super().__init__(*args, **kwargs)
|
|
|
+ self.fields['tag'] = TagFilterField(self.model)
|
|
|
+
|
|
|
|
|
|
#
|
|
|
# Rack elevations
|
|
|
@@ -1005,6 +1014,10 @@ class DeviceTypeFilterForm(BootstrapMixin, CustomFieldFilterForm):
|
|
|
)
|
|
|
)
|
|
|
|
|
|
+ def __init__(self, *args, **kwargs):
|
|
|
+ super().__init__(*args, **kwargs)
|
|
|
+ self.fields['tag'] = TagFilterField(self.model)
|
|
|
+
|
|
|
|
|
|
#
|
|
|
# Device component templates
|
|
|
@@ -1947,6 +1960,10 @@ class DeviceFilterForm(BootstrapMixin, LocalConfigContextFilterForm, TenancyFilt
|
|
|
)
|
|
|
)
|
|
|
|
|
|
+ def __init__(self, *args, **kwargs):
|
|
|
+ super().__init__(*args, **kwargs)
|
|
|
+ self.fields['tag'] = TagFilterField(self.model)
|
|
|
+
|
|
|
|
|
|
#
|
|
|
# Bulk device component creation
|
|
|
@@ -3405,6 +3422,10 @@ class InventoryItemFilterForm(BootstrapMixin, forms.Form):
|
|
|
)
|
|
|
)
|
|
|
|
|
|
+ def __init__(self, *args, **kwargs):
|
|
|
+ super().__init__(*args, **kwargs)
|
|
|
+ self.fields['tag'] = TagFilterField(self.model)
|
|
|
+
|
|
|
|
|
|
#
|
|
|
# Virtual chassis
|
|
|
@@ -3591,6 +3612,10 @@ class VirtualChassisFilterForm(BootstrapMixin, CustomFieldFilterForm):
|
|
|
)
|
|
|
)
|
|
|
|
|
|
+ def __init__(self, *args, **kwargs):
|
|
|
+ super().__init__(*args, **kwargs)
|
|
|
+ self.fields['tag'] = TagFilterField(self.model)
|
|
|
+
|
|
|
|
|
|
#
|
|
|
# Power panels
|
|
|
@@ -3967,3 +3992,7 @@ class PowerFeedFilterForm(BootstrapMixin, CustomFieldFilterForm):
|
|
|
max_utilization = forms.IntegerField(
|
|
|
required=False
|
|
|
)
|
|
|
+
|
|
|
+ def __init__(self, *args, **kwargs):
|
|
|
+ super().__init__(*args, **kwargs)
|
|
|
+ self.fields['tag'] = TagFilterField(self.model)
|