mirror of
https://github.com/netbox-community/netbox.git
synced 2025-12-12 11:29:36 -06:00
This commit is contained in:
parent
b685df7c9c
commit
d7877b7627
@ -5,7 +5,7 @@ from django.contrib.postgres.forms import SimpleArrayField
|
|||||||
from django.core.exceptions import ObjectDoesNotExist
|
from django.core.exceptions import ObjectDoesNotExist
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
from core.models import ObjectType
|
from core.models import DataFile, DataSource, ObjectType
|
||||||
from extras.choices import *
|
from extras.choices import *
|
||||||
from extras.models import *
|
from extras.models import *
|
||||||
from netbox.events import get_event_type_choices
|
from netbox.events import get_event_type_choices
|
||||||
@ -160,14 +160,41 @@ class ConfigContextProfileImportForm(NetBoxModelImportForm):
|
|||||||
|
|
||||||
|
|
||||||
class ConfigTemplateImportForm(CSVModelForm):
|
class ConfigTemplateImportForm(CSVModelForm):
|
||||||
|
data_source = CSVModelChoiceField(
|
||||||
|
label=_('Data source'),
|
||||||
|
queryset=DataSource.objects.all(),
|
||||||
|
required=False,
|
||||||
|
to_field_name='name',
|
||||||
|
help_text=_('Data source which provides the data file')
|
||||||
|
)
|
||||||
|
data_file = CSVModelChoiceField(
|
||||||
|
label=_('Data file'),
|
||||||
|
queryset=DataFile.objects.all(),
|
||||||
|
required=False,
|
||||||
|
to_field_name='path',
|
||||||
|
help_text=_('Data file containing the template code')
|
||||||
|
)
|
||||||
|
auto_sync_enabled = forms.BooleanField(
|
||||||
|
required=False,
|
||||||
|
label=_('Auto sync enabled'),
|
||||||
|
help_text=_("Enable automatic synchronization of template content when the data file is updated")
|
||||||
|
)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = ConfigTemplate
|
model = ConfigTemplate
|
||||||
fields = (
|
fields = (
|
||||||
'name', 'description', 'template_code', 'environment_params', 'mime_type', 'file_name', 'file_extension',
|
'name', 'description', 'template_code', 'data_source', 'data_file', 'auto_sync_enabled',
|
||||||
'as_attachment', 'tags',
|
'environment_params', 'mime_type', 'file_name', 'file_extension', 'as_attachment', 'tags',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def clean(self):
|
||||||
|
super().clean()
|
||||||
|
|
||||||
|
# Make sure template_code is None when it's not included in the uploaded data
|
||||||
|
if not self.data.get('template_code') and not self.data.get('data_file'):
|
||||||
|
raise forms.ValidationError(_("Must specify either local content or a data file"))
|
||||||
|
return self.cleaned_data['template_code']
|
||||||
|
|
||||||
|
|
||||||
class SavedFilterImportForm(CSVModelForm):
|
class SavedFilterImportForm(CSVModelForm):
|
||||||
object_types = CSVMultipleContentTypeField(
|
object_types = CSVMultipleContentTypeField(
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user