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
|
"""Crée les votant·e·s pour l'élection donnée, en remplissant les champs
|
||||||
`username`, `election` et `full_name`.
|
`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)
|
csv_file.seek(0)
|
||||||
reader = csv.reader(io.StringIO(csv_file.read().decode("utf-8")), dialect)
|
reader = csv.reader(io.StringIO(csv_file.read().decode("utf-8")), dialect)
|
||||||
for (username, full_name, email) in reader:
|
for (username, full_name, email) in reader:
|
||||||
|
@ -22,7 +22,7 @@ def create_users(election, csv_file):
|
||||||
def check_csv(csv_file):
|
def check_csv(csv_file):
|
||||||
"""Vérifie que le fichier donnant la liste de votant·e·s est bien formé"""
|
"""Vérifie que le fichier donnant la liste de votant·e·s est bien formé"""
|
||||||
try:
|
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:
|
except csv.Error:
|
||||||
return [
|
return [
|
||||||
_(
|
_(
|
||||||
|
@ -33,9 +33,8 @@ def check_csv(csv_file):
|
||||||
csv_file.seek(0)
|
csv_file.seek(0)
|
||||||
reader = csv.reader(io.StringIO(csv_file.read().decode("utf-8")), dialect)
|
reader = csv.reader(io.StringIO(csv_file.read().decode("utf-8")), dialect)
|
||||||
|
|
||||||
columns = [_("login"), _("nom"), _("email")]
|
|
||||||
|
|
||||||
errors = []
|
errors = []
|
||||||
|
users = {}
|
||||||
line_nb = 0
|
line_nb = 0
|
||||||
for line in reader:
|
for line in reader:
|
||||||
line_nb += 1
|
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)
|
_("La ligne {} n'a pas le bon nombre d'éléments.").format(line_nb)
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
if line[0] == "" or line[1] == "":
|
if line[0] == "":
|
||||||
errors.append(
|
errors.append(
|
||||||
_("Valeur manquante dans la ligne {} : '{}'.").format(
|
_("Valeur manquante dans la ligne {} : 'login'.").format(line_nb)
|
||||||
line_nb, columns[line.index("")]
|
)
|
||||||
|
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:
|
try:
|
||||||
validate_email(line[2])
|
validate_email(line[2])
|
||||||
|
|
Loading…
Reference in a new issue