From 8c850e50051e2b9cf9a63ff45b5399637e38365d Mon Sep 17 00:00:00 2001 From: Martin Mares <mj@ucw.cz> Date: Fri, 29 Sep 2023 18:38:14 +0200 Subject: [PATCH] =?UTF-8?q?Import:=20Nerozli=C5=A1iteln=C3=AD=20=C3=BA?= =?UTF-8?q?=C4=8Dastn=C3=ADci=20jsou=20chyba?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mo/imports.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/mo/imports.py b/mo/imports.py index b8c34f96..a66631d1 100644 --- a/mo/imports.py +++ b/mo/imports.py @@ -491,6 +491,7 @@ class ContestImport(Import): log_msg_prefix = 'Účastníci' log_details = {'action': 'import'} template_basename = 'sablona-ucast' + email_last_seen: Dict[str, int] def __init__( self, @@ -512,6 +513,7 @@ class ContestImport(Import): self.row_example.kod_skoly = default_place.get_code() else: self.row_example.kod_skoly = '#3333' + self.email_last_seen = {} assert not self.round.is_subround() def import_row(self, r: mo.csv.Row) -> None: @@ -542,6 +544,11 @@ class ContestImport(Import): email = mo.users.email_or_synthesize(email, krestni, prijmeni, rocnik, school_place) except mo.CheckError as e: return self.error(str(e)) + + if email in self.email_last_seen: + return self.error(f'Účastník není rozlišitelný od toho z řádku {self.email_last_seen[email]}. Případné jmenovce vyřešte ručním přidáním účastníka.') + self.email_last_seen[email] = self.line_number + user = self.find_or_create_user(email, krestni, prijmeni, is_org=False) if user is None: return -- GitLab