Clean up ordering of fields in component template creation forms

This commit is contained in:
jeremystretch 2022-09-09 14:10:52 -04:00
parent f055235ef1
commit 83e5ba433a
2 changed files with 82 additions and 98 deletions

View File

@ -991,12 +991,15 @@ class ComponentTemplateForm(BootstrapMixin, forms.ModelForm):
queryset=DeviceType.objects.all() queryset=DeviceType.objects.all()
) )
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
class ModularComponentTemplateForm(BootstrapMixin, forms.ModelForm): # Disable reassignment of DeviceType when editing an existing instance
device_type = DynamicModelChoiceField( if self.instance.pk:
queryset=DeviceType.objects.all(), self.fields['device_type'].disabled = True
required=False
)
class ModularComponentTemplateForm(ComponentTemplateForm):
module_type = DynamicModelChoiceField( module_type = DynamicModelChoiceField(
queryset=ModuleType.objects.all(), queryset=ModuleType.objects.all(),
required=False required=False
@ -1004,6 +1007,10 @@ class ModularComponentTemplateForm(BootstrapMixin, forms.ModelForm):
class ConsolePortTemplateForm(ModularComponentTemplateForm): class ConsolePortTemplateForm(ModularComponentTemplateForm):
fieldsets = (
(None, ('device_type', 'module_type', 'name', 'label', 'type', 'description')),
)
class Meta: class Meta:
model = ConsolePortTemplate model = ConsolePortTemplate
fields = [ fields = [
@ -1015,6 +1022,10 @@ class ConsolePortTemplateForm(ModularComponentTemplateForm):
class ConsoleServerPortTemplateForm(ModularComponentTemplateForm): class ConsoleServerPortTemplateForm(ModularComponentTemplateForm):
fieldsets = (
(None, ('device_type', 'module_type', 'name', 'label', 'type', 'description')),
)
class Meta: class Meta:
model = ConsoleServerPortTemplate model = ConsoleServerPortTemplate
fields = [ fields = [
@ -1026,6 +1037,12 @@ class ConsoleServerPortTemplateForm(ModularComponentTemplateForm):
class PowerPortTemplateForm(ModularComponentTemplateForm): class PowerPortTemplateForm(ModularComponentTemplateForm):
fieldsets = (
(None, (
'device_type', 'module_type', 'name', 'label', 'type', 'maximum_draw', 'allocated_draw', 'description',
)),
)
class Meta: class Meta:
model = PowerPortTemplate model = PowerPortTemplate
fields = [ fields = [
@ -1045,6 +1062,10 @@ class PowerOutletTemplateForm(ModularComponentTemplateForm):
} }
) )
fieldsets = (
(None, ('device_type', 'module_type', 'name', 'label', 'type', 'power_port', 'feed_leg', 'description')),
)
class Meta: class Meta:
model = PowerOutletTemplate model = PowerOutletTemplate
fields = [ fields = [
@ -1057,6 +1078,11 @@ class PowerOutletTemplateForm(ModularComponentTemplateForm):
class InterfaceTemplateForm(ModularComponentTemplateForm): class InterfaceTemplateForm(ModularComponentTemplateForm):
fieldsets = (
(None, ('device_type', 'module_type', 'name', 'label', 'type', 'mgmt_only', 'description')),
('PoE', ('poe_mode', 'poe_type'))
)
class Meta: class Meta:
model = InterfaceTemplate model = InterfaceTemplate
fields = [ fields = [
@ -1079,6 +1105,13 @@ class FrontPortTemplateForm(ModularComponentTemplateForm):
} }
) )
fieldsets = (
(None, (
'device_type', 'module_type', 'name', 'label', 'type', 'color', 'rear_port', 'rear_port_position',
'description',
)),
)
class Meta: class Meta:
model = FrontPortTemplate model = FrontPortTemplate
fields = [ fields = [
@ -1091,6 +1124,10 @@ class FrontPortTemplateForm(ModularComponentTemplateForm):
class RearPortTemplateForm(ModularComponentTemplateForm): class RearPortTemplateForm(ModularComponentTemplateForm):
fieldsets = (
(None, ('device_type', 'module_type', 'name', 'label', 'type', 'color', 'positions', 'description')),
)
class Meta: class Meta:
model = RearPortTemplate model = RearPortTemplate
fields = [ fields = [
@ -1102,6 +1139,10 @@ class RearPortTemplateForm(ModularComponentTemplateForm):
class ModuleBayTemplateForm(ComponentTemplateForm): class ModuleBayTemplateForm(ComponentTemplateForm):
fieldsets = (
(None, ('device_type', 'name', 'label', 'position', 'description')),
)
class Meta: class Meta:
model = ModuleBayTemplate model = ModuleBayTemplate
fields = [ fields = [
@ -1110,6 +1151,10 @@ class ModuleBayTemplateForm(ComponentTemplateForm):
class DeviceBayTemplateForm(ComponentTemplateForm): class DeviceBayTemplateForm(ComponentTemplateForm):
fieldsets = (
(None, ('device_type', 'name', 'label', 'description')),
)
class Meta: class Meta:
model = DeviceBayTemplate model = DeviceBayTemplate
fields = [ fields = [
@ -1144,6 +1189,13 @@ class InventoryItemTemplateForm(ComponentTemplateForm):
widget=forms.HiddenInput widget=forms.HiddenInput
) )
fieldsets = (
(None, (
'device_type', 'parent', 'name', 'label', 'role', 'manufacturer', 'part_id', 'description',
'component_type', 'component_id',
)),
)
class Meta: class Meta:
model = InventoryItemTemplate model = InventoryItemTemplate
fields = [ fields = [
@ -1156,10 +1208,20 @@ class InventoryItemTemplateForm(ComponentTemplateForm):
# Device components # Device components
# #
class ConsolePortForm(NetBoxModelForm): class DeviceComponentForm(NetBoxModelForm):
device = DynamicModelChoiceField( device = DynamicModelChoiceField(
queryset=Device.objects.all() queryset=Device.objects.all()
) )
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
# Disable reassignment of Device when editing an existing instance
if self.instance.pk:
self.fields['device'].disabled = True
class ModularDeviceComponentForm(NetBoxModelForm):
module = DynamicModelChoiceField( module = DynamicModelChoiceField(
queryset=Module.objects.all(), queryset=Module.objects.all(),
required=False, required=False,
@ -1168,6 +1230,8 @@ class ConsolePortForm(NetBoxModelForm):
} }
) )
class ConsolePortForm(ModularDeviceComponentForm):
fieldsets = ( fieldsets = (
(None, ( (None, (
'device', 'module', 'name', 'label', 'type', 'speed', 'mark_connected', 'description', 'tags', 'device', 'module', 'name', 'label', 'type', 'speed', 'mark_connected', 'description', 'tags',
@ -1185,17 +1249,7 @@ class ConsolePortForm(NetBoxModelForm):
} }
class ConsoleServerPortForm(NetBoxModelForm): class ConsoleServerPortForm(ModularDeviceComponentForm):
device = DynamicModelChoiceField(
queryset=Device.objects.all()
)
module = DynamicModelChoiceField(
queryset=Module.objects.all(),
required=False,
query_params={
'device_id': '$device',
}
)
fieldsets = ( fieldsets = (
(None, ( (None, (
@ -1214,17 +1268,7 @@ class ConsoleServerPortForm(NetBoxModelForm):
} }
class PowerPortForm(NetBoxModelForm): class PowerPortForm(ModularDeviceComponentForm):
device = DynamicModelChoiceField(
queryset=Device.objects.all()
)
module = DynamicModelChoiceField(
queryset=Module.objects.all(),
required=False,
query_params={
'device_id': '$device',
}
)
fieldsets = ( fieldsets = (
(None, ( (None, (
@ -1244,17 +1288,7 @@ class PowerPortForm(NetBoxModelForm):
} }
class PowerOutletForm(NetBoxModelForm): class PowerOutletForm(ModularDeviceComponentForm):
device = DynamicModelChoiceField(
queryset=Device.objects.all()
)
module = DynamicModelChoiceField(
queryset=Module.objects.all(),
required=False,
query_params={
'device_id': '$device',
}
)
power_port = DynamicModelChoiceField( power_port = DynamicModelChoiceField(
queryset=PowerPort.objects.all(), queryset=PowerPort.objects.all(),
required=False, required=False,
@ -1282,17 +1316,7 @@ class PowerOutletForm(NetBoxModelForm):
} }
class InterfaceForm(InterfaceCommonForm, NetBoxModelForm): class InterfaceForm(InterfaceCommonForm, ModularDeviceComponentForm):
device = DynamicModelChoiceField(
queryset=Device.objects.all()
)
module = DynamicModelChoiceField(
queryset=Module.objects.all(),
required=False,
query_params={
'device_id': '$device',
}
)
parent = DynamicModelChoiceField( parent = DynamicModelChoiceField(
queryset=Interface.objects.all(), queryset=Interface.objects.all(),
required=False, required=False,
@ -1410,17 +1434,7 @@ class InterfaceForm(InterfaceCommonForm, NetBoxModelForm):
self.fields['bridge'].widget.add_query_param('device_id', device.virtual_chassis.master.pk) self.fields['bridge'].widget.add_query_param('device_id', device.virtual_chassis.master.pk)
class FrontPortForm(NetBoxModelForm): class FrontPortForm(ModularDeviceComponentForm):
device = DynamicModelChoiceField(
queryset=Device.objects.all()
)
module = DynamicModelChoiceField(
queryset=Module.objects.all(),
required=False,
query_params={
'device_id': '$device',
}
)
rear_port = DynamicModelChoiceField( rear_port = DynamicModelChoiceField(
queryset=RearPort.objects.all(), queryset=RearPort.objects.all(),
query_params={ query_params={
@ -1446,18 +1460,7 @@ class FrontPortForm(NetBoxModelForm):
} }
class RearPortForm(NetBoxModelForm): class RearPortForm(ModularDeviceComponentForm):
device = DynamicModelChoiceField(
queryset=Device.objects.all()
)
module = DynamicModelChoiceField(
queryset=Module.objects.all(),
required=False,
query_params={
'device_id': '$device',
}
)
fieldsets = ( fieldsets = (
(None, ( (None, (
'device', 'module', 'name', 'label', 'type', 'color', 'positions', 'mark_connected', 'description', 'tags', 'device', 'module', 'name', 'label', 'type', 'color', 'positions', 'mark_connected', 'description', 'tags',
@ -1474,11 +1477,7 @@ class RearPortForm(NetBoxModelForm):
} }
class ModuleBayForm(NetBoxModelForm): class ModuleBayForm(DeviceComponentForm):
device = DynamicModelChoiceField(
queryset=Device.objects.all()
)
fieldsets = ( fieldsets = (
(None, ('device', 'name', 'label', 'position', 'description', 'tags',)), (None, ('device', 'name', 'label', 'position', 'description', 'tags',)),
) )
@ -1490,11 +1489,7 @@ class ModuleBayForm(NetBoxModelForm):
] ]
class DeviceBayForm(NetBoxModelForm): class DeviceBayForm(DeviceComponentForm):
device = DynamicModelChoiceField(
queryset=Device.objects.all()
)
fieldsets = ( fieldsets = (
(None, ('device', 'name', 'label', 'description', 'tags',)), (None, ('device', 'name', 'label', 'description', 'tags',)),
) )
@ -1526,10 +1521,7 @@ class PopulateDeviceBayForm(BootstrapMixin, forms.Form):
).exclude(pk=device_bay.device.pk) ).exclude(pk=device_bay.device.pk)
class InventoryItemForm(NetBoxModelForm): class InventoryItemForm(DeviceComponentForm):
device = DynamicModelChoiceField(
queryset=Device.objects.all()
)
parent = DynamicModelChoiceField( parent = DynamicModelChoiceField(
queryset=InventoryItem.objects.all(), queryset=InventoryItem.objects.all(),
required=False, required=False,

View File

@ -77,35 +77,30 @@ class ComponentCreateForm(forms.Form):
# #
class ConsolePortTemplateCreateForm(ComponentCreateForm, model_forms.ConsolePortTemplateForm): class ConsolePortTemplateCreateForm(ComponentCreateForm, model_forms.ConsolePortTemplateForm):
field_order = ('device_type', 'name', 'label')
class Meta(model_forms.ConsolePortTemplateForm.Meta): class Meta(model_forms.ConsolePortTemplateForm.Meta):
exclude = ('name', 'label') exclude = ('name', 'label')
class ConsoleServerPortTemplateCreateForm(ComponentCreateForm, model_forms.ConsoleServerPortTemplateForm): class ConsoleServerPortTemplateCreateForm(ComponentCreateForm, model_forms.ConsoleServerPortTemplateForm):
field_order = ('device_type', 'name', 'label')
class Meta(model_forms.ConsoleServerPortTemplateForm.Meta): class Meta(model_forms.ConsoleServerPortTemplateForm.Meta):
exclude = ('name', 'label') exclude = ('name', 'label')
class PowerPortTemplateCreateForm(ComponentCreateForm, model_forms.PowerPortTemplateForm): class PowerPortTemplateCreateForm(ComponentCreateForm, model_forms.PowerPortTemplateForm):
field_order = ('device_type', 'name', 'label')
class Meta(model_forms.PowerPortTemplateForm.Meta): class Meta(model_forms.PowerPortTemplateForm.Meta):
exclude = ('name', 'label') exclude = ('name', 'label')
class PowerOutletTemplateCreateForm(ComponentCreateForm, model_forms.PowerOutletTemplateForm): class PowerOutletTemplateCreateForm(ComponentCreateForm, model_forms.PowerOutletTemplateForm):
field_order = ('device_type', 'name', 'label')
class Meta(model_forms.PowerOutletTemplateForm.Meta): class Meta(model_forms.PowerOutletTemplateForm.Meta):
exclude = ('name', 'label') exclude = ('name', 'label')
class InterfaceTemplateCreateForm(ComponentCreateForm, model_forms.InterfaceTemplateForm): class InterfaceTemplateCreateForm(ComponentCreateForm, model_forms.InterfaceTemplateForm):
field_order = ('device_type', 'name', 'label')
class Meta(model_forms.InterfaceTemplateForm.Meta): class Meta(model_forms.InterfaceTemplateForm.Meta):
exclude = ('name', 'label') exclude = ('name', 'label')
@ -117,8 +112,9 @@ class FrontPortTemplateCreateForm(ComponentCreateForm, model_forms.FrontPortTemp
label='Rear ports', label='Rear ports',
help_text='Select one rear port assignment for each front port being created.', help_text='Select one rear port assignment for each front port being created.',
) )
field_order = (
'device_type', 'module_type', 'name', 'label', 'type', 'color', 'rear_port', 'description', fieldsets = (
(None, ('device_type', 'module_type', 'name', 'label', 'type', 'color', 'rear_port', 'description')),
) )
class Meta(model_forms.FrontPortTemplateForm.Meta): class Meta(model_forms.FrontPortTemplateForm.Meta):
@ -168,14 +164,12 @@ class FrontPortTemplateCreateForm(ComponentCreateForm, model_forms.FrontPortTemp
class RearPortTemplateCreateForm(ComponentCreateForm, model_forms.RearPortTemplateForm): class RearPortTemplateCreateForm(ComponentCreateForm, model_forms.RearPortTemplateForm):
field_order = ('device_type', 'name', 'label')
class Meta(model_forms.RearPortTemplateForm.Meta): class Meta(model_forms.RearPortTemplateForm.Meta):
exclude = ('name', 'label') exclude = ('name', 'label')
class DeviceBayTemplateCreateForm(ComponentCreateForm, model_forms.DeviceBayTemplateForm): class DeviceBayTemplateCreateForm(ComponentCreateForm, model_forms.DeviceBayTemplateForm):
field_order = ('device_type', 'name', 'label')
class Meta(model_forms.DeviceBayTemplateForm.Meta): class Meta(model_forms.DeviceBayTemplateForm.Meta):
exclude = ('name', 'label') exclude = ('name', 'label')
@ -187,7 +181,6 @@ class ModuleBayTemplateCreateForm(ComponentCreateForm, model_forms.ModuleBayTemp
required=False, required=False,
help_text='Alphanumeric ranges are supported. (Must match the number of names being created.)' help_text='Alphanumeric ranges are supported. (Must match the number of names being created.)'
) )
field_order = ('device_type', 'name', 'label')
replication_fields = ('name', 'label', 'position') replication_fields = ('name', 'label', 'position')
class Meta(model_forms.ModuleBayTemplateForm.Meta): class Meta(model_forms.ModuleBayTemplateForm.Meta):
@ -195,7 +188,6 @@ class ModuleBayTemplateCreateForm(ComponentCreateForm, model_forms.ModuleBayTemp
class InventoryItemTemplateCreateForm(ComponentCreateForm, model_forms.InventoryItemTemplateForm): class InventoryItemTemplateCreateForm(ComponentCreateForm, model_forms.InventoryItemTemplateForm):
field_order = ('device_type', 'name', 'label')
class Meta(model_forms.InventoryItemTemplateForm.Meta): class Meta(model_forms.InventoryItemTemplateForm.Meta):
exclude = ('name', 'label') exclude = ('name', 'label')