summaryrefslogtreecommitdiff
path: root/ishtar_common/models_imports.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2024-06-26 12:29:05 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2024-06-27 09:54:54 +0200
commit13f3a093b767feefeabc55233af0eb82b0cc8966 (patch)
treea36bcf52bf908a95b68551a07650da0331cdc72f /ishtar_common/models_imports.py
parenta6bc7e64d72b8a2c88e5e365cf0627bdd0807cff (diff)
downloadIshtar-13f3a093b767feefeabc55233af0eb82b0cc8966.tar.bz2
Ishtar-13f3a093b767feefeabc55233af0eb82b0cc8966.zip
🐛 Imports: manage error on file opening (ODS, excel formats)
Diffstat (limited to 'ishtar_common/models_imports.py')
-rw-r--r--ishtar_common/models_imports.py13
1 files changed, 11 insertions, 2 deletions
diff --git a/ishtar_common/models_imports.py b/ishtar_common/models_imports.py
index 97a6aaf12..53a3c068f 100644
--- a/ishtar_common/models_imports.py
+++ b/ishtar_common/models_imports.py
@@ -2197,8 +2197,17 @@ class Import(BaseImport):
last_column = max(col_numbers)
filename = ".".join(imported_file_path.split('.')[:-1]) + f"-{random.randint(1, 10000):05d}.csv"
- data.to_csv(filename, index=False, columns=data.columns[range(last_column)],
- float_format=np_format_int_float)
+ try:
+ data.to_csv(filename, index=False, columns=data.columns[range(last_column)],
+ float_format=np_format_int_float)
+ except IndexError:
+ error_file = f"{slugify(self.name)}_errors_{datetime.datetime.now().strftime('%Y-%m-%d-%H%M')}.csv"
+ error = str(_("Error while opening the file. Particularly check the number of columns of your file."))
+ csv_file = f"line,error\n-,{error}"
+ self.error_file.save(
+ error_file, ContentFile(csv_file.encode("utf-8"))
+ )
+ return
# TODO: date_format options do not do the job... Dirty hack
DATE = re.compile(
r"^(1[0-9]|20|[1-9])\d{2}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01]) 00:00:00"