manager: clearer error message on invalid csv import file (#37374)

This commit is contained in:
Valentin Deniaud 2019-11-21 10:20:34 +01:00
parent 2936f25623
commit fba5f1217c
1 changed files with 8 additions and 3 deletions

View File

@ -18,7 +18,7 @@ import hashlib
import smtplib
import logging
from django.utils.translation import ugettext_lazy as _, pgettext
from django.utils.translation import ugettext_lazy as _, pgettext, ugettext
from django import forms
from django.contrib.contenttypes.models import ContentType
from django.contrib.auth import get_user_model
@ -723,6 +723,11 @@ class UserImportForm(forms.Form):
label=_('Organizational Unit'),
queryset=OU.objects.all())
@staticmethod
def raise_validation_error(error_message):
message_prefix = ugettext('Invalid import file')
raise forms.ValidationError('%s : %s' % (message_prefix, six.text_type(error_message)))
class UserNewImportForm(UserImportForm):
def clean(self):
@ -734,7 +739,7 @@ class UserNewImportForm(UserImportForm):
import_file.open()
importer = CsvImporter()
if not importer.run(import_file, encoding):
raise forms.ValidationError(importer.error.description or importer.error.code)
self.raise_validation_error(importer.error.description or importer.error.code)
self.cleaned_data['rows_count'] = len(importer.rows)
def save(self):
@ -767,7 +772,7 @@ class UserEditImportForm(UserImportForm):
with self.user_import.import_file as fd:
importer = CsvImporter()
if not importer.run(fd, encoding):
raise forms.ValidationError(importer.error.description or importer.error.code)
self.raise_validation_error(importer.error.description or importer.error.code)
self.cleaned_data['rows_count'] = len(importer.rows)
def save(self):