|
|
@@ -24,35 +24,45 @@ __all__ = (
|
|
|
'CableFilterForm',
|
|
|
'ConsoleConnectionFilterForm',
|
|
|
'ConsolePortFilterForm',
|
|
|
+ 'ConsolePortTemplateFilterForm',
|
|
|
'ConsoleServerPortFilterForm',
|
|
|
+ 'ConsoleServerPortTemplateFilterForm',
|
|
|
'DeviceBayFilterForm',
|
|
|
+ 'DeviceBayTemplateFilterForm',
|
|
|
'DeviceFilterForm',
|
|
|
'DeviceRoleFilterForm',
|
|
|
'DeviceTypeFilterForm',
|
|
|
'FrontPortFilterForm',
|
|
|
+ 'FrontPortTemplateFilterForm',
|
|
|
'InterfaceConnectionFilterForm',
|
|
|
'InterfaceFilterForm',
|
|
|
+ 'InterfaceTemplateFilterForm',
|
|
|
'InventoryItemFilterForm',
|
|
|
+ 'InventoryItemTemplateFilterForm',
|
|
|
'InventoryItemRoleFilterForm',
|
|
|
'LocationFilterForm',
|
|
|
'MACAddressFilterForm',
|
|
|
'ManufacturerFilterForm',
|
|
|
'ModuleFilterForm',
|
|
|
'ModuleBayFilterForm',
|
|
|
+ 'ModuleBayTemplateFilterForm',
|
|
|
'ModuleTypeFilterForm',
|
|
|
'ModuleTypeProfileFilterForm',
|
|
|
'PlatformFilterForm',
|
|
|
'PowerConnectionFilterForm',
|
|
|
'PowerFeedFilterForm',
|
|
|
'PowerOutletFilterForm',
|
|
|
+ 'PowerOutletTemplateFilterForm',
|
|
|
'PowerPanelFilterForm',
|
|
|
'PowerPortFilterForm',
|
|
|
+ 'PowerPortTemplateFilterForm',
|
|
|
'RackFilterForm',
|
|
|
'RackElevationFilterForm',
|
|
|
'RackReservationFilterForm',
|
|
|
'RackRoleFilterForm',
|
|
|
'RackTypeFilterForm',
|
|
|
'RearPortFilterForm',
|
|
|
+ 'RearPortTemplateFilterForm',
|
|
|
'RegionFilterForm',
|
|
|
'SiteFilterForm',
|
|
|
'SiteGroupFilterForm',
|
|
|
@@ -1290,6 +1300,23 @@ class PowerFeedFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
|
|
|
# Device components
|
|
|
#
|
|
|
|
|
|
+class DeviceComponentTemplateFilterForm(NetBoxModelFilterSetForm):
|
|
|
+ device_type_id = DynamicModelMultipleChoiceField(
|
|
|
+ queryset=DeviceType.objects.all(),
|
|
|
+ required=False,
|
|
|
+ label=_('Device type'),
|
|
|
+ )
|
|
|
+
|
|
|
+
|
|
|
+class ModularDeviceComponentTemplateFilterForm(DeviceComponentTemplateFilterForm):
|
|
|
+ module_type_id = DynamicModelMultipleChoiceField(
|
|
|
+ queryset=ModuleType.objects.all(),
|
|
|
+ required=False,
|
|
|
+ query_params={'manufacturer_id': '$manufacturer_id'},
|
|
|
+ label=_('Module Type'),
|
|
|
+ )
|
|
|
+
|
|
|
+
|
|
|
class CabledFilterForm(forms.Form):
|
|
|
cabled = forms.NullBooleanField(
|
|
|
label=_('Cabled'),
|
|
|
@@ -1342,6 +1369,20 @@ class ConsolePortFilterForm(PathEndpointFilterForm, DeviceComponentFilterForm):
|
|
|
tag = TagFilterField(model)
|
|
|
|
|
|
|
|
|
+class ConsolePortTemplateFilterForm(ModularDeviceComponentTemplateFilterForm):
|
|
|
+ model = ConsolePortTemplate
|
|
|
+ fieldsets = (
|
|
|
+ FieldSet('q', 'filter_id', 'tag'),
|
|
|
+ FieldSet('name', 'label', 'type', name=_('Attributes')),
|
|
|
+ FieldSet('device_type_id', 'module_type_id', name=_('Device')),
|
|
|
+ )
|
|
|
+ type = forms.MultipleChoiceField(
|
|
|
+ label=_('Type'),
|
|
|
+ choices=ConsolePortTypeChoices,
|
|
|
+ required=False
|
|
|
+ )
|
|
|
+
|
|
|
+
|
|
|
class ConsoleServerPortFilterForm(PathEndpointFilterForm, DeviceComponentFilterForm):
|
|
|
model = ConsoleServerPort
|
|
|
fieldsets = (
|
|
|
@@ -1367,6 +1408,20 @@ class ConsoleServerPortFilterForm(PathEndpointFilterForm, DeviceComponentFilterF
|
|
|
tag = TagFilterField(model)
|
|
|
|
|
|
|
|
|
+class ConsoleServerPortTemplateFilterForm(ModularDeviceComponentTemplateFilterForm):
|
|
|
+ model = ConsoleServerPortTemplate
|
|
|
+ fieldsets = (
|
|
|
+ FieldSet('q', 'filter_id', 'tag'),
|
|
|
+ FieldSet('name', 'label', 'type', name=_('Attributes')),
|
|
|
+ FieldSet('device_type_id', 'module_type_id', name=_('Device')),
|
|
|
+ )
|
|
|
+ type = forms.MultipleChoiceField(
|
|
|
+ label=_('Type'),
|
|
|
+ choices=ConsolePortTypeChoices,
|
|
|
+ required=False
|
|
|
+ )
|
|
|
+
|
|
|
+
|
|
|
class PowerPortFilterForm(PathEndpointFilterForm, DeviceComponentFilterForm):
|
|
|
model = PowerPort
|
|
|
fieldsets = (
|
|
|
@@ -1387,6 +1442,20 @@ class PowerPortFilterForm(PathEndpointFilterForm, DeviceComponentFilterForm):
|
|
|
tag = TagFilterField(model)
|
|
|
|
|
|
|
|
|
+class PowerPortTemplateFilterForm(ModularDeviceComponentTemplateFilterForm):
|
|
|
+ model = PowerPortTemplate
|
|
|
+ fieldsets = (
|
|
|
+ FieldSet('q', 'filter_id', 'tag'),
|
|
|
+ FieldSet('name', 'label', 'type', name=_('Attributes')),
|
|
|
+ FieldSet('device_type_id', 'module_type_id', name=_('Device')),
|
|
|
+ )
|
|
|
+ type = forms.MultipleChoiceField(
|
|
|
+ label=_('Type'),
|
|
|
+ choices=PowerPortTypeChoices,
|
|
|
+ required=False
|
|
|
+ )
|
|
|
+
|
|
|
+
|
|
|
class PowerOutletFilterForm(PathEndpointFilterForm, DeviceComponentFilterForm):
|
|
|
model = PowerOutlet
|
|
|
fieldsets = (
|
|
|
@@ -1416,6 +1485,20 @@ class PowerOutletFilterForm(PathEndpointFilterForm, DeviceComponentFilterForm):
|
|
|
)
|
|
|
|
|
|
|
|
|
+class PowerOutletTemplateFilterForm(ModularDeviceComponentTemplateFilterForm):
|
|
|
+ model = PowerOutletTemplate
|
|
|
+ fieldsets = (
|
|
|
+ FieldSet('q', 'filter_id', 'tag'),
|
|
|
+ FieldSet('name', 'label', 'type', name=_('Attributes')),
|
|
|
+ FieldSet('device_type_id', 'module_type_id', name=_('Device')),
|
|
|
+ )
|
|
|
+ type = forms.MultipleChoiceField(
|
|
|
+ label=_('Type'),
|
|
|
+ choices=PowerOutletTypeChoices,
|
|
|
+ required=False
|
|
|
+ )
|
|
|
+
|
|
|
+
|
|
|
class InterfaceFilterForm(PathEndpointFilterForm, DeviceComponentFilterForm):
|
|
|
model = Interface
|
|
|
fieldsets = (
|
|
|
@@ -1543,6 +1626,51 @@ class InterfaceFilterForm(PathEndpointFilterForm, DeviceComponentFilterForm):
|
|
|
tag = TagFilterField(model)
|
|
|
|
|
|
|
|
|
+class InterfaceTemplateFilterForm(ModularDeviceComponentTemplateFilterForm):
|
|
|
+ model = InterfaceTemplate
|
|
|
+ fieldsets = (
|
|
|
+ FieldSet('q', 'filter_id', 'tag'),
|
|
|
+ FieldSet('name', 'label', 'type', 'enabled', 'mgmt_only', name=_('Attributes')),
|
|
|
+ FieldSet('poe_mode', 'poe_type', name=_('PoE')),
|
|
|
+ FieldSet('rf_role', name=_('Wireless')),
|
|
|
+ FieldSet('device_type_id', 'module_type_id', name=_('Device')),
|
|
|
+ )
|
|
|
+ type = forms.MultipleChoiceField(
|
|
|
+ label=_('Type'),
|
|
|
+ choices=InterfaceTypeChoices,
|
|
|
+ required=False
|
|
|
+ )
|
|
|
+ enabled = forms.NullBooleanField(
|
|
|
+ label=_('Enabled'),
|
|
|
+ required=False,
|
|
|
+ widget=forms.Select(
|
|
|
+ choices=BOOLEAN_WITH_BLANK_CHOICES
|
|
|
+ )
|
|
|
+ )
|
|
|
+ mgmt_only = forms.NullBooleanField(
|
|
|
+ label=_('Management only'),
|
|
|
+ required=False,
|
|
|
+ widget=forms.Select(
|
|
|
+ choices=BOOLEAN_WITH_BLANK_CHOICES
|
|
|
+ )
|
|
|
+ )
|
|
|
+ poe_mode = forms.MultipleChoiceField(
|
|
|
+ choices=InterfacePoEModeChoices,
|
|
|
+ required=False,
|
|
|
+ label=_('PoE mode')
|
|
|
+ )
|
|
|
+ poe_type = forms.MultipleChoiceField(
|
|
|
+ choices=InterfacePoETypeChoices,
|
|
|
+ required=False,
|
|
|
+ label=_('PoE type')
|
|
|
+ )
|
|
|
+ rf_role = forms.MultipleChoiceField(
|
|
|
+ choices=WirelessRoleChoices,
|
|
|
+ required=False,
|
|
|
+ label=_('Wireless role')
|
|
|
+ )
|
|
|
+
|
|
|
+
|
|
|
class FrontPortFilterForm(CabledFilterForm, DeviceComponentFilterForm):
|
|
|
fieldsets = (
|
|
|
FieldSet('q', 'filter_id', 'tag'),
|
|
|
@@ -1567,6 +1695,24 @@ class FrontPortFilterForm(CabledFilterForm, DeviceComponentFilterForm):
|
|
|
tag = TagFilterField(model)
|
|
|
|
|
|
|
|
|
+class FrontPortTemplateFilterForm(ModularDeviceComponentTemplateFilterForm):
|
|
|
+ model = FrontPortTemplate
|
|
|
+ fieldsets = (
|
|
|
+ FieldSet('q', 'filter_id', 'tag'),
|
|
|
+ FieldSet('name', 'label', 'type', 'color', name=_('Attributes')),
|
|
|
+ FieldSet('device_type_id', 'module_type_id', name=_('Device')),
|
|
|
+ )
|
|
|
+ type = forms.MultipleChoiceField(
|
|
|
+ label=_('Type'),
|
|
|
+ choices=PortTypeChoices,
|
|
|
+ required=False
|
|
|
+ )
|
|
|
+ color = ColorField(
|
|
|
+ label=_('Color'),
|
|
|
+ required=False
|
|
|
+ )
|
|
|
+
|
|
|
+
|
|
|
class RearPortFilterForm(CabledFilterForm, DeviceComponentFilterForm):
|
|
|
model = RearPort
|
|
|
fieldsets = (
|
|
|
@@ -1591,6 +1737,24 @@ class RearPortFilterForm(CabledFilterForm, DeviceComponentFilterForm):
|
|
|
tag = TagFilterField(model)
|
|
|
|
|
|
|
|
|
+class RearPortTemplateFilterForm(ModularDeviceComponentTemplateFilterForm):
|
|
|
+ model = RearPortTemplate
|
|
|
+ fieldsets = (
|
|
|
+ FieldSet('q', 'filter_id', 'tag'),
|
|
|
+ FieldSet('name', 'label', 'type', 'color', name=_('Attributes')),
|
|
|
+ FieldSet('device_type_id', 'module_type_id', name=_('Device')),
|
|
|
+ )
|
|
|
+ type = forms.MultipleChoiceField(
|
|
|
+ label=_('Type'),
|
|
|
+ choices=PortTypeChoices,
|
|
|
+ required=False
|
|
|
+ )
|
|
|
+ color = ColorField(
|
|
|
+ label=_('Color'),
|
|
|
+ required=False
|
|
|
+ )
|
|
|
+
|
|
|
+
|
|
|
class ModuleBayFilterForm(DeviceComponentFilterForm):
|
|
|
model = ModuleBay
|
|
|
fieldsets = (
|
|
|
@@ -1609,6 +1773,19 @@ class ModuleBayFilterForm(DeviceComponentFilterForm):
|
|
|
)
|
|
|
|
|
|
|
|
|
+class ModuleBayTemplateFilterForm(ModularDeviceComponentTemplateFilterForm):
|
|
|
+ model = ModuleBayTemplate
|
|
|
+ fieldsets = (
|
|
|
+ FieldSet('q', 'filter_id', 'tag'),
|
|
|
+ FieldSet('name', 'label', 'position', name=_('Attributes')),
|
|
|
+ FieldSet('device_type_id', 'module_type_id', name=_('Device')),
|
|
|
+ )
|
|
|
+ position = forms.CharField(
|
|
|
+ label=_('Position'),
|
|
|
+ required=False,
|
|
|
+ )
|
|
|
+
|
|
|
+
|
|
|
class DeviceBayFilterForm(DeviceComponentFilterForm):
|
|
|
model = DeviceBay
|
|
|
fieldsets = (
|
|
|
@@ -1623,6 +1800,15 @@ class DeviceBayFilterForm(DeviceComponentFilterForm):
|
|
|
tag = TagFilterField(model)
|
|
|
|
|
|
|
|
|
+class DeviceBayTemplateFilterForm(DeviceComponentTemplateFilterForm):
|
|
|
+ model = DeviceBayTemplate
|
|
|
+ fieldsets = (
|
|
|
+ FieldSet('q', 'filter_id', 'tag'),
|
|
|
+ FieldSet('name', 'label', name=_('Attributes')),
|
|
|
+ FieldSet('device_type_id', name=_('Device')),
|
|
|
+ )
|
|
|
+
|
|
|
+
|
|
|
class InventoryItemFilterForm(DeviceComponentFilterForm):
|
|
|
model = InventoryItem
|
|
|
fieldsets = (
|
|
|
@@ -1670,6 +1856,25 @@ class InventoryItemFilterForm(DeviceComponentFilterForm):
|
|
|
tag = TagFilterField(model)
|
|
|
|
|
|
|
|
|
+class InventoryItemTemplateFilterForm(DeviceComponentTemplateFilterForm):
|
|
|
+ model = InventoryItemTemplate
|
|
|
+ fieldsets = (
|
|
|
+ FieldSet('q', 'filter_id', 'tag'),
|
|
|
+ FieldSet('name', 'label', 'role_id', 'manufacturer_id', name=_('Attributes')),
|
|
|
+ FieldSet('device_type_id', name=_('Device')),
|
|
|
+ )
|
|
|
+ role_id = DynamicModelMultipleChoiceField(
|
|
|
+ queryset=InventoryItemRole.objects.all(),
|
|
|
+ required=False,
|
|
|
+ label=_('Role')
|
|
|
+ )
|
|
|
+ manufacturer_id = DynamicModelMultipleChoiceField(
|
|
|
+ queryset=Manufacturer.objects.all(),
|
|
|
+ required=False,
|
|
|
+ label=_('Manufacturer')
|
|
|
+ )
|
|
|
+
|
|
|
+
|
|
|
#
|
|
|
# Device component roles
|
|
|
#
|