mirror of
https://github.com/netbox-community/netbox.git
synced 2025-09-06 14:23:36 -06:00
Add support for pipe character as delimiting character for bulk imports
This commit is contained in:
parent
9cf023a0c6
commit
a3ce248c0d
@ -151,12 +151,14 @@ class CSVDelimiterChoices(ChoiceSet):
|
|||||||
AUTO = 'auto'
|
AUTO = 'auto'
|
||||||
COMMA = CSV_DELIMITERS['comma']
|
COMMA = CSV_DELIMITERS['comma']
|
||||||
SEMICOLON = CSV_DELIMITERS['semicolon']
|
SEMICOLON = CSV_DELIMITERS['semicolon']
|
||||||
|
PIPE = CSV_DELIMITERS['pipe']
|
||||||
TAB = CSV_DELIMITERS['tab']
|
TAB = CSV_DELIMITERS['tab']
|
||||||
|
|
||||||
CHOICES = [
|
CHOICES = [
|
||||||
(AUTO, _('Auto-detect')),
|
(AUTO, _('Auto-detect')),
|
||||||
(COMMA, _('Comma')),
|
(COMMA, _('Comma')),
|
||||||
(SEMICOLON, _('Semicolon')),
|
(SEMICOLON, _('Semicolon')),
|
||||||
|
(PIPE, _('Pipe')),
|
||||||
(TAB, _('Tab')),
|
(TAB, _('Tab')),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -60,11 +60,3 @@ CENSOR_TOKEN_CHANGED = '***CHANGED***'
|
|||||||
|
|
||||||
# Placeholder text for empty tables
|
# Placeholder text for empty tables
|
||||||
EMPTY_TABLE_TEXT = 'No results found'
|
EMPTY_TABLE_TEXT = 'No results found'
|
||||||
|
|
||||||
# CSV delimiters
|
|
||||||
CSV_DELIMITERS = {
|
|
||||||
'comma': ',',
|
|
||||||
'semicolon': ';',
|
|
||||||
'pipe': '|',
|
|
||||||
'tab': '\t',
|
|
||||||
}
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
from netbox.constants import CSV_DELIMITERS
|
|
||||||
from netbox.registry import registry
|
from netbox.registry import registry
|
||||||
from users.preferences import UserPreference
|
from users.preferences import UserPreference
|
||||||
|
from utilities.constants import CSV_DELIMITERS
|
||||||
from utilities.paginator import EnhancedPaginator
|
from utilities.paginator import EnhancedPaginator
|
||||||
|
|
||||||
|
|
||||||
|
@ -69,6 +69,7 @@ HTTP_REQUEST_META_SAFE_COPY = [
|
|||||||
CSV_DELIMITERS = {
|
CSV_DELIMITERS = {
|
||||||
'comma': ',',
|
'comma': ',',
|
||||||
'semicolon': ';',
|
'semicolon': ';',
|
||||||
|
'pipe': '|',
|
||||||
'tab': '\t',
|
'tab': '\t',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
from django_tables2.export import TableExport as TableExport_
|
from django_tables2.export import TableExport as TableExport_
|
||||||
|
|
||||||
from netbox.constants import CSV_DELIMITERS
|
from utilities.constants import CSV_DELIMITERS
|
||||||
|
|
||||||
__all__ = (
|
__all__ = (
|
||||||
'TableExport',
|
'TableExport',
|
||||||
|
@ -115,7 +115,7 @@ class BulkImportForm(ChangelogMessageMixin, BackgroundJobMixin, SyncedDataMixin,
|
|||||||
dialect = csv.Sniffer().sniff(data.strip(), delimiters=delimiters)
|
dialect = csv.Sniffer().sniff(data.strip(), delimiters=delimiters)
|
||||||
except csv.Error:
|
except csv.Error:
|
||||||
dialect = csv.excel
|
dialect = csv.excel
|
||||||
elif delimiter in (CSVDelimiterChoices.COMMA, CSVDelimiterChoices.SEMICOLON):
|
elif delimiter in (CSVDelimiterChoices.COMMA, CSVDelimiterChoices.SEMICOLON, CSVDelimiterChoices.PIPE):
|
||||||
dialect = csv.excel
|
dialect = csv.excel
|
||||||
dialect.delimiter = delimiter
|
dialect.delimiter = delimiter
|
||||||
elif delimiter == CSVDelimiterChoices.TAB:
|
elif delimiter == CSVDelimiterChoices.TAB:
|
||||||
|
Loading…
Reference in New Issue
Block a user