gestiojeux/accounts/views.py

51 lines
1.5 KiB
Python
Raw Normal View History

from django.contrib import messages
from django.contrib.auth import user_logged_in, user_logged_out, user_login_failed
from django.contrib.auth.mixins import LoginRequiredMixin
from django.contrib.auth.views import PasswordChangeView
from django.dispatch import receiver
from django.urls import reverse
from django.views.generic.edit import UpdateView
from .forms import AccountSettingsForm
@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.")
class PasswordChangeView(PasswordChangeView):
template_name = "registration/change_password.html"
def __init__(self):
self.form_class.error_css_class = "errorfield"
def get_success_url(self):
messages.info(self.request, "Mot de passe mis à jour")
return reverse("accounts:account_settings")
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)