2024-07-04 20:26:24 +02:00
|
|
|
from django.contrib import messages
|
2020-11-29 22:35:42 +01:00
|
|
|
from django.contrib.auth import user_logged_in, user_logged_out, user_login_failed
|
2020-12-20 01:10:02 +01:00
|
|
|
from django.contrib.auth.mixins import LoginRequiredMixin
|
|
|
|
from django.contrib.auth.views import PasswordChangeView
|
2024-07-04 20:26:24 +02:00
|
|
|
from django.dispatch import receiver
|
|
|
|
from django.urls import reverse
|
|
|
|
from django.views.generic.edit import UpdateView
|
2020-10-17 21:31:55 +02:00
|
|
|
|
2020-12-20 01:10:02 +01:00
|
|
|
from .forms import AccountSettingsForm
|
|
|
|
|
2020-10-17 21:31:55 +02:00
|
|
|
|
2020-11-29 22:35:42 +01:00
|
|
|
@receiver(user_logged_in)
|
|
|
|
def on_login(request, user, **kwargs):
|
|
|
|
messages.success(request, "Connexion réussie. Bienvenue, {}.".format(user))
|
|
|
|
|
|
|
|
|
|
|
|
@receiver(user_logged_out)
|
|
|
|
def on_logout(request, **kwargs):
|
|
|
|
messages.info(request, "Vous avez bien été déconnecté·e.")
|
|
|
|
|
|
|
|
|
|
|
|
@receiver(user_login_failed)
|
|
|
|
def on_login_failed(request, **kwargs):
|
|
|
|
messages.error(request, "Connexion échouée.")
|
2020-12-20 01:10:02 +01:00
|
|
|
|
|
|
|
|
|
|
|
class PasswordChangeView(PasswordChangeView):
|
|
|
|
template_name = "registration/change_password.html"
|
|
|
|
|
2020-12-29 20:22:36 +01:00
|
|
|
def __init__(self):
|
|
|
|
self.form_class.error_css_class = "errorfield"
|
|
|
|
|
2020-12-20 01:10:02 +01:00
|
|
|
def get_success_url(self):
|
|
|
|
messages.info(self.request, "Mot de passe mis à jour")
|
2020-12-24 14:19:35 +01:00
|
|
|
return reverse("accounts:account_settings")
|
2020-12-20 01:10:02 +01:00
|
|
|
|
|
|
|
|
|
|
|
class AccountSettingsView(LoginRequiredMixin, UpdateView):
|
|
|
|
template_name = "registration/account_settings.html"
|
|
|
|
form_class = AccountSettingsForm
|
|
|
|
|
|
|
|
def get_object(self):
|
|
|
|
return self.request.user
|
|
|
|
|
|
|
|
def get_success_url(self):
|
|
|
|
return self.request.get_full_path()
|
|
|
|
|
|
|
|
def form_valid(self, form):
|
|
|
|
messages.success(self.request, "Paramètres du compte mis à jour")
|
|
|
|
return super().form_valid(form)
|