Rajoute une page pour créer plus facilement des comptes avec mdp

This commit is contained in:
Tom Hubrecht 2021-04-26 17:54:07 +02:00
parent c73f8a5943
commit c97f57912b
11 changed files with 108 additions and 19 deletions

View file

@ -94,7 +94,7 @@ class DeleteVoteForm(forms.Form):
super().__init__(**kwargs)
if voter is not None:
self.fields["delete"].label = _("Supprimer le vote de {} ({}) ?").format(
voter.full_name, voter.get_username()
voter.full_name, voter.base_username
)
delete = forms.ChoiceField(

View file

@ -208,7 +208,8 @@ class User(AbstractUser):
)
full_name = models.CharField(_("Nom et Prénom"), max_length=150, blank=True)
def get_username(self):
@property
def base_username(self):
return "__".join(self.username.split("__")[1:])
def can_vote(self, request, election):

View file

@ -62,7 +62,7 @@
{% if election.restricted %}
{% for v in election.registered_voters.all %}
<tr>
<td>{{ v.full_name }} ({{ v.get_username }})</td>
<td>{{ v.full_name }} ({{ v.base_username }})</td>
<td class="has-text-centered">
<span class="icon">
{% if v in voters %}
@ -77,7 +77,7 @@
{% else %}
{% for v in voters %}
<tr id="v_{{ forloop.counter }}">
<td>{{ v.full_name }} ({{ v.get_username }})</td>
<td>{{ v.full_name }} ({{ v.base_username }})</td>
<td class="has-text-centered">
<span class="icon">
<i class="fas fa-check"></i>

View file

@ -110,7 +110,7 @@
<tbody>
{% for v in voters %}
<tr>
<td>{{ v.get_username }}</td>
<td>{{ v.base_username }}</td>
<td>{{ v.full_name }}</td>
<td>{{ v.email }}</td>
</tr>

View file

@ -1,6 +1,5 @@
import csv
import io
import random
import networkx as nx
import numpy as np
@ -14,6 +13,8 @@ from django.template.loader import render_to_string
from django.urls import reverse
from django.utils.translation import gettext_lazy as _
from shared.auth.utils import generate_password
# #############################################################################
# Fonctions universelles
# #############################################################################
@ -389,16 +390,6 @@ def check_csv(csv_file):
return errors
def generate_password():
random.seed()
alphabet = "abcdefghjkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789"
password = ""
for i in range(15):
password += random.choice(alphabet)
return password
def send_mail(election, mail_form):
"""Envoie le mail d'annonce de l'élection avec identifiants et mot de passe
aux votant·e·s, le mdp est généré en même temps que le mail est envoyé.
@ -418,7 +409,7 @@ def send_mail(election, mail_form):
body=mail_form.cleaned_data["message"].format(
full_name=v.full_name,
election_url=url,
username=v.get_username(),
username=v.base_username,
password=password,
),
to=[v.email],