summaryrefslogtreecommitdiff
path: root/ishtar_common/forms_common.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/forms_common.py')
-rw-r--r--ishtar_common/forms_common.py17
1 files changed, 13 insertions, 4 deletions
diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py
index 7ad89ed3e..f14799f53 100644
--- a/ishtar_common/forms_common.py
+++ b/ishtar_common/forms_common.py
@@ -213,6 +213,8 @@ class BaseImportForm(IshtarForm, forms.ModelForm):
self.fields["imported_file"].validators = [file_size_validator]
self._post_init()
+ BAD_CHARS = ["é", "³", "ô", "Ã\xa0", "é"]
+
def _clean_csv(self, is_csv=False):
imported_file = self.cleaned_data.get("imported_file", None)
encoding = self.cleaned_data.get("encoding", None)
@@ -220,15 +222,22 @@ class BaseImportForm(IshtarForm, forms.ModelForm):
try:
if not imported_file.name.lower().endswith(".csv"):
if is_csv:
- raise AssertionError()
+ raise ValueError()
else:
return
imported_file.seek(0)
reader = csv.reader(StringIO(imported_file.read().decode(encoding)))
- for __ in reader:
- break
+ idx = 0
+ for row in reader:
+ for col in row:
+ for char in self.BAD_CHARS:
+ if char in col:
+ raise ValueError()
+ idx += 1
+ if idx >= 200:
+ break
imported_file.seek(0)
- except (AssertionError, UnicodeDecodeError) as e:
+ except (UnicodeDecodeError, ValueError) as e:
raise forms.ValidationError(
_("This is not a valid CSV file. Check file format and encoding.")
)