From e80137304d62b308879195210f92aed4cbe8e1df Mon Sep 17 00:00:00 2001 From: Jiri Kalvoda <jirikalvoda@kam.mff.cuni.cz> Date: Wed, 7 Jul 2021 16:01:06 +0200 Subject: [PATCH] =?UTF-8?q?P=C5=99ips=C3=A1n=C3=AD=20mailu=20do=20chybov?= =?UTF-8?q?=C3=A9=20hl=C3=A1=C5=A1ky=20p=C5=99i=20importu.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #190 --- mo/imports.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/mo/imports.py b/mo/imports.py index d4be9712..51aa689b 100644 --- a/mo/imports.py +++ b/mo/imports.py @@ -69,6 +69,7 @@ class Import: gatekeeper: mo.rights.Gatekeeper new_user_ids: List[int] line_number: int = 0 + row_name: Optional[str] = None def __init__(self): self.errors = [] @@ -84,7 +85,10 @@ class Import: def error(self, msg: str) -> Any: if self.line_number > 0: - msg = f"Řádek {self.line_number}: {msg}" + if self.row_name: + msg = f"Řádek {self.line_number} ({self.row_name}): {msg}" + else: + msg = f"Řádek {self.line_number}: {msg}" self.errors.append(msg) logger.info('Import: >> %s', msg) return None # Kdyby bylo otypováno správně jako -> None, při volání by si mypy stěžoval @@ -376,6 +380,12 @@ class Import: except UnicodeDecodeError: return False + def get_row_name(self, row: mo.csv.Row) -> Optional[str]: + if hasattr(row, 'email'): + return row.email # type: ignore + # čtení prvku potomka + return None + def generic_import(self, path: str) -> bool: charset = self.fmt.get_charset() if charset != 'utf-8' and self.check_utf8(path): @@ -396,12 +406,14 @@ class Import: self.line_number = 2 for row in rows: + self.row_name = self.get_row_name(row) self.cnt_rows += 1 self.import_row(row) if len(self.errors) >= 100: self.errors.append('Import přerušen pro příliš mnoho chyb') break self.line_number += 1 + self.row_name = None return len(self.errors) == 0 -- GitLab