Rajoute une page pour créer plus facilement des comptes avec mdp
This commit is contained in:
parent
c73f8a5943
commit
c97f57912b
11 changed files with 108 additions and 19 deletions
|
@ -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(
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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],
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue