From d6afc125e5ccd7ca9aafe41372a219c16ac1d66b Mon Sep 17 00:00:00 2001 From: jeremystretch Date: Tue, 21 Mar 2023 14:15:37 -0400 Subject: [PATCH] #11693: Clean up ExportTemplate model form --- netbox/extras/forms/model_forms.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/netbox/extras/forms/model_forms.py b/netbox/extras/forms/model_forms.py index 86cd457b3..75eedba48 100644 --- a/netbox/extras/forms/model_forms.py +++ b/netbox/extras/forms/model_forms.py @@ -90,7 +90,7 @@ class CustomLinkForm(BootstrapMixin, forms.ModelForm): } -class ExportTemplateForm(BootstrapMixin, forms.ModelForm): +class ExportTemplateForm(BootstrapMixin, SyncedDataMixin, forms.ModelForm): content_types = ContentTypeMultipleChoiceField( queryset=ContentType.objects.all(), limit_choices_to=FeatureQuery('export_templates') @@ -101,8 +101,8 @@ class ExportTemplateForm(BootstrapMixin, forms.ModelForm): ) fieldsets = ( - ('Export Template', ('name', 'content_types', 'description')), - ('Content', ('data_source', 'data_file', 'template_code',)), + ('Export Template', ('name', 'content_types', 'description', 'template_code')), + ('Data Source', ('data_source', 'data_file')), ('Rendering', ('mime_type', 'file_extension', 'as_attachment')), ) @@ -110,6 +110,16 @@ class ExportTemplateForm(BootstrapMixin, forms.ModelForm): model = ExportTemplate fields = '__all__' + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + # Disable data field when a DataFile has been set + if self.instance.data_file: + self.fields['template_code'].widget.attrs['readonly'] = True + self.fields['template_code'].help_text = _( + 'Template content is populated from the remote source selected below.' + ) + def clean(self): super().clean()