From 52312195b62dff474468d5ef1bf63cfb8311de13 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Tue, 10 Nov 2020 12:33:20 -0500 Subject: [PATCH] Ensure consistent inclusion of custom fields for newly-supporting models --- netbox/dcim/forms.py | 24 ++++++++++++++----- netbox/dcim/views.py | 1 + netbox/templates/dcim/powerpanel_edit.html | 23 ++++++++++++++++++ netbox/templates/dcim/virtualchassis_add.html | 8 +++++++ 4 files changed, 50 insertions(+), 6 deletions(-) create mode 100644 netbox/templates/dcim/powerpanel_edit.html diff --git a/netbox/dcim/forms.py b/netbox/dcim/forms.py index 4ba8318f4..a80c88c9c 100644 --- a/netbox/dcim/forms.py +++ b/netbox/dcim/forms.py @@ -3470,7 +3470,7 @@ class InventoryItemFilterForm(DeviceComponentFilterForm): # Cables # -class ConnectCableToDeviceForm(BootstrapMixin, forms.ModelForm): +class ConnectCableToDeviceForm(BootstrapMixin, CustomFieldModelForm): """ Base form for connecting a Cable to a Device component """ @@ -3507,12 +3507,16 @@ class ConnectCableToDeviceForm(BootstrapMixin, forms.ModelForm): 'rack_id': '$termination_b_rack', } ) + tags = DynamicModelMultipleChoiceField( + queryset=Tag.objects.all(), + required=False + ) class Meta: model = Cable fields = [ 'termination_b_region', 'termination_b_site', 'termination_b_rack', 'termination_b_device', - 'termination_b_id', 'type', 'status', 'label', 'color', 'length', 'length_unit', + 'termination_b_id', 'type', 'status', 'label', 'color', 'length', 'length_unit', 'tags', ] widgets = { 'status': StaticSelect2, @@ -3603,7 +3607,7 @@ class ConnectCableToRearPortForm(ConnectCableToDeviceForm): ) -class ConnectCableToCircuitTerminationForm(BootstrapMixin, forms.ModelForm): +class ConnectCableToCircuitTerminationForm(BootstrapMixin, CustomFieldModelForm): termination_b_provider = DynamicModelChoiceField( queryset=Provider.objects.all(), label='Provider', @@ -3640,12 +3644,16 @@ class ConnectCableToCircuitTerminationForm(BootstrapMixin, forms.ModelForm): 'circuit_id': '$termination_b_circuit' } ) + tags = DynamicModelMultipleChoiceField( + queryset=Tag.objects.all(), + required=False + ) class Meta: model = Cable fields = [ 'termination_b_provider', 'termination_b_region', 'termination_b_site', 'termination_b_circuit', - 'termination_b_id', 'type', 'status', 'label', 'color', 'length', 'length_unit', + 'termination_b_id', 'type', 'status', 'label', 'color', 'length', 'length_unit', 'tags', ] def clean_termination_b_id(self): @@ -3653,7 +3661,7 @@ class ConnectCableToCircuitTerminationForm(BootstrapMixin, forms.ModelForm): return getattr(self.cleaned_data['termination_b_id'], 'pk', None) -class ConnectCableToPowerFeedForm(BootstrapMixin, forms.ModelForm): +class ConnectCableToPowerFeedForm(BootstrapMixin, CustomFieldModelForm): termination_b_region = DynamicModelChoiceField( queryset=Region.objects.all(), label='Region', @@ -3693,12 +3701,16 @@ class ConnectCableToPowerFeedForm(BootstrapMixin, forms.ModelForm): 'power_panel_id': '$termination_b_powerpanel' } ) + tags = DynamicModelMultipleChoiceField( + queryset=Tag.objects.all(), + required=False + ) class Meta: model = Cable fields = [ 'termination_b_rackgroup', 'termination_b_powerpanel', 'termination_b_id', 'type', 'status', 'label', - 'color', 'length', 'length_unit', + 'color', 'length', 'length_unit', 'tags', ] def clean_termination_b_id(self): diff --git a/netbox/dcim/views.py b/netbox/dcim/views.py index f9563de4d..c0e93b18e 100644 --- a/netbox/dcim/views.py +++ b/netbox/dcim/views.py @@ -2485,6 +2485,7 @@ class PowerPanelView(ObjectView): class PowerPanelEditView(ObjectEditView): queryset = PowerPanel.objects.all() model_form = forms.PowerPanelForm + template_name = 'dcim/powerpanel_edit.html' class PowerPanelDeleteView(ObjectDeleteView): diff --git a/netbox/templates/dcim/powerpanel_edit.html b/netbox/templates/dcim/powerpanel_edit.html new file mode 100644 index 000000000..38f6ea11b --- /dev/null +++ b/netbox/templates/dcim/powerpanel_edit.html @@ -0,0 +1,23 @@ +{% extends 'utilities/obj_edit.html' %} +{% load form_helpers %} + +{% block form %} +
+
Power Panel
+
+ {% render_field form.region %} + {% render_field form.site %} + {% render_field form.rack_group %} + {% render_field form.name %} + {% render_field form.tags %} +
+
+ {% if form.custom_fields %} +
+
Custom Fields
+
+ {% render_custom_fields form %} +
+
+ {% endif %} +{% endblock %} diff --git a/netbox/templates/dcim/virtualchassis_add.html b/netbox/templates/dcim/virtualchassis_add.html index ac94cc7df..5a64ed3fc 100644 --- a/netbox/templates/dcim/virtualchassis_add.html +++ b/netbox/templates/dcim/virtualchassis_add.html @@ -20,4 +20,12 @@ {% render_field form.initial_position %} + {% if form.custom_fields %} +
+
Custom Fields
+
+ {% render_custom_fields form %} +
+
+ {% endif %} {% endblock %}