mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Closes #8034: Enable specifying custom field validators during CSV import
This commit is contained in:
@ -6,6 +6,7 @@
|
|||||||
|
|
||||||
* [#6782](https://github.com/netbox-community/netbox/issues/6782) - Enable the inclusion of custom links in tables
|
* [#6782](https://github.com/netbox-community/netbox/issues/6782) - Enable the inclusion of custom links in tables
|
||||||
* [#7600](https://github.com/netbox-community/netbox/issues/7600) - Include count of available IPs on prefix view
|
* [#7600](https://github.com/netbox-community/netbox/issues/7600) - Include count of available IPs on prefix view
|
||||||
|
* [#8034](https://github.com/netbox-community/netbox/issues/8034) - Enable specifying custom field validators during CSV import
|
||||||
* [#8100](https://github.com/netbox-community/netbox/issues/8100) - Add "other" choice for FHRP group protocol
|
* [#8100](https://github.com/netbox-community/netbox/issues/8100) - Add "other" choice for FHRP group protocol
|
||||||
* [#8175](https://github.com/netbox-community/netbox/issues/8175) - Display parent object when attaching an image
|
* [#8175](https://github.com/netbox-community/netbox/issues/8175) - Display parent object when attaching an image
|
||||||
|
|
||||||
|
@ -3,9 +3,10 @@ from django.contrib.contenttypes.models import ContentType
|
|||||||
from django.contrib.postgres.forms import SimpleArrayField
|
from django.contrib.postgres.forms import SimpleArrayField
|
||||||
from django.utils.safestring import mark_safe
|
from django.utils.safestring import mark_safe
|
||||||
|
|
||||||
|
from extras.choices import CustomFieldTypeChoices
|
||||||
from extras.models import *
|
from extras.models import *
|
||||||
from extras.utils import FeatureQuery
|
from extras.utils import FeatureQuery
|
||||||
from utilities.forms import CSVContentTypeField, CSVModelForm, CSVMultipleContentTypeField, SlugField
|
from utilities.forms import CSVChoiceField, CSVContentTypeField, CSVModelForm, CSVMultipleContentTypeField, SlugField
|
||||||
|
|
||||||
__all__ = (
|
__all__ = (
|
||||||
'CustomFieldCSVForm',
|
'CustomFieldCSVForm',
|
||||||
@ -22,6 +23,10 @@ class CustomFieldCSVForm(CSVModelForm):
|
|||||||
limit_choices_to=FeatureQuery('custom_fields'),
|
limit_choices_to=FeatureQuery('custom_fields'),
|
||||||
help_text="One or more assigned object types"
|
help_text="One or more assigned object types"
|
||||||
)
|
)
|
||||||
|
type = CSVChoiceField(
|
||||||
|
choices=CustomFieldTypeChoices,
|
||||||
|
help_text='Field data type (e.g. text, integer, etc.)'
|
||||||
|
)
|
||||||
choices = SimpleArrayField(
|
choices = SimpleArrayField(
|
||||||
base_field=forms.CharField(),
|
base_field=forms.CharField(),
|
||||||
required=False,
|
required=False,
|
||||||
@ -32,7 +37,7 @@ class CustomFieldCSVForm(CSVModelForm):
|
|||||||
model = CustomField
|
model = CustomField
|
||||||
fields = (
|
fields = (
|
||||||
'name', 'label', 'type', 'content_types', 'required', 'description', 'weight', 'filter_logic', 'default',
|
'name', 'label', 'type', 'content_types', 'required', 'description', 'weight', 'filter_logic', 'default',
|
||||||
'choices', 'weight',
|
'choices', 'weight', 'validation_minimum', 'validation_maximum', 'validation_regex',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -39,10 +39,10 @@ class CustomFieldTestCase(ViewTestCases.PrimaryObjectViewTestCase):
|
|||||||
}
|
}
|
||||||
|
|
||||||
cls.csv_data = (
|
cls.csv_data = (
|
||||||
'name,label,type,content_types,weight,filter_logic,choices',
|
'name,label,type,content_types,weight,filter_logic,choices,validation_minimum,validation_maximum,validation_regex',
|
||||||
'field4,Field 4,text,dcim.site,100,exact,',
|
'field4,Field 4,text,dcim.site,100,exact,,,,[a-z]{3}',
|
||||||
'field5,Field 5,integer,dcim.site,100,exact,',
|
'field5,Field 5,integer,dcim.site,100,exact,,1,100,',
|
||||||
'field6,Field 6,select,dcim.site,100,exact,"A,B,C"',
|
'field6,Field 6,select,dcim.site,100,exact,"A,B,C",,,',
|
||||||
)
|
)
|
||||||
|
|
||||||
cls.bulk_edit_data = {
|
cls.bulk_edit_data = {
|
||||||
|
Reference in New Issue
Block a user