Vérifie l'unicité des logins
This commit is contained in:
parent
83525a7984
commit
8e60374091
1 changed files with 17 additions and 7 deletions
|
@ -10,7 +10,7 @@ def create_users(election, csv_file):
|
|||
"""Crée les votant·e·s pour l'élection donnée, en remplissant les champs
|
||||
`username`, `election` et `full_name`.
|
||||
"""
|
||||
dialect = csv.Sniffer().sniff(csv_file.read(1024).decode("utf-8"))
|
||||
dialect = csv.Sniffer().sniff(csv_file.readline().decode("utf-8"))
|
||||
csv_file.seek(0)
|
||||
reader = csv.reader(io.StringIO(csv_file.read().decode("utf-8")), dialect)
|
||||
for (username, full_name, email) in reader:
|
||||
|
@ -22,7 +22,7 @@ def create_users(election, csv_file):
|
|||
def check_csv(csv_file):
|
||||
"""Vérifie que le fichier donnant la liste de votant·e·s est bien formé"""
|
||||
try:
|
||||
dialect = csv.Sniffer().sniff(csv_file.read(1024).decode("utf-8"))
|
||||
dialect = csv.Sniffer().sniff(csv_file.readline().decode("utf-8"))
|
||||
except csv.Error:
|
||||
return [
|
||||
_(
|
||||
|
@ -33,9 +33,8 @@ def check_csv(csv_file):
|
|||
csv_file.seek(0)
|
||||
reader = csv.reader(io.StringIO(csv_file.read().decode("utf-8")), dialect)
|
||||
|
||||
columns = [_("login"), _("nom"), _("email")]
|
||||
|
||||
errors = []
|
||||
users = {}
|
||||
line_nb = 0
|
||||
for line in reader:
|
||||
line_nb += 1
|
||||
|
@ -44,11 +43,22 @@ def check_csv(csv_file):
|
|||
_("La ligne {} n'a pas le bon nombre d'éléments.").format(line_nb)
|
||||
)
|
||||
else:
|
||||
if line[0] == "" or line[1] == "":
|
||||
if line[0] == "":
|
||||
errors.append(
|
||||
_("Valeur manquante dans la ligne {} : '{}'.").format(
|
||||
line_nb, columns[line.index("")]
|
||||
_("Valeur manquante dans la ligne {} : 'login'.").format(line_nb)
|
||||
)
|
||||
else:
|
||||
if line[0] in users:
|
||||
errors.append(
|
||||
_("Doublon dans les logins : lignes {} et {}.").format(
|
||||
line_nb, users[line[0]]
|
||||
)
|
||||
)
|
||||
else:
|
||||
users[line[0]] = line_nb
|
||||
if line[1] == "":
|
||||
errors.append(
|
||||
_("Valeur manquante dans la ligne {} : 'nom'.").format(line_nb)
|
||||
)
|
||||
try:
|
||||
validate_email(line[2])
|
||||
|
|
Loading…
Reference in a new issue