mirror of
https://github.com/pretix/pretix.git
synced 2026-05-10 16:04:02 +00:00
Improve error handling for CSV parsing in voucher bulk creation
This commit is contained in:
@@ -345,8 +345,11 @@ class VoucherBulkForm(VoucherForm):
|
|||||||
if ',' in raw or ';' in raw:
|
if ',' in raw or ';' in raw:
|
||||||
if '@' in r[0]:
|
if '@' in r[0]:
|
||||||
raise ValidationError(_('CSV input needs to contain a header row in the first line.'))
|
raise ValidationError(_('CSV input needs to contain a header row in the first line.'))
|
||||||
dialect = csv.Sniffer().sniff(raw[:1024])
|
try:
|
||||||
reader = csv.DictReader(StringIO(raw), dialect=dialect)
|
dialect = csv.Sniffer().sniff(raw[:1024])
|
||||||
|
reader = csv.DictReader(StringIO(raw), dialect=dialect)
|
||||||
|
except csv.Error as e:
|
||||||
|
raise ValidationError(_('CSV parsing failed: {error}.').format(error=str(e)))
|
||||||
if 'email' not in reader.fieldnames:
|
if 'email' not in reader.fieldnames:
|
||||||
raise ValidationError(_('CSV input needs to contain a field with the header "{header}".').format(header="email"))
|
raise ValidationError(_('CSV input needs to contain a field with the header "{header}".').format(header="email"))
|
||||||
unknown_fields = [f for f in reader.fieldnames if f not in ('email', 'name', 'tag', 'number')]
|
unknown_fields = [f for f in reader.fieldnames if f not in ('email', 'name', 'tag', 'number')]
|
||||||
|
|||||||
Reference in New Issue
Block a user