diff --git a/mo/imports.py b/mo/imports.py index b8c34f96702b3073f11eeb6be0180515da11d701..a66631d1426068261b9258cef1492abb5fd45a68 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