musik/base/views.py

64 lines
2 KiB
Python

from django.contrib.auth import views as auth_views
from django.contrib.auth.models import User
from django.contrib.messages.views import SuccessMessageMixin
from django.shortcuts import redirect
from django.urls import reverse_lazy
from django.views.generic.base import TemplateView
from django.views.generic.edit import CreateView, DeleteView, UpdateView
from . import forms
class HomePageView(TemplateView):
template_name = "index.html"
def dispatch(self, request, *args, **kwargs):
if request.user.is_authenticated:
return redirect("home")
return super().dispatch(request, *args, **kwargs)
class SignupView(SuccessMessageMixin, CreateView):
model = User
form_class = forms.UserSignupForm
success_url = reverse_lazy("login")
success_message = "Le compte %(username)s a été créé avec succès."
class PasswordChangeView(SuccessMessageMixin, auth_views.PasswordChangeView):
success_message = "Le mot de passe a été changé avec succès."
success_url = reverse_lazy("index")
class PasswordResetView(SuccessMessageMixin, auth_views.PasswordResetView):
success_message = "Un courriel a été envoyé avec les instructions pour réinitialiser votre mot de passe."
success_url = reverse_lazy("login")
class PasswordResetConfirmView(
SuccessMessageMixin, auth_views.PasswordResetConfirmView
):
success_message = "Le mot de passe a été réinitialisé avec succès."
success_url = reverse_lazy("login")
class AccountView(UpdateView):
model = User
fields = ["username", "email"]
success_url = reverse_lazy("index")
template_name = "auth/user_settings.html"
def get_object(self, queryset=None):
if queryset is None:
queryset = self.get_queryset()
return queryset.get(pk=self.request.user.pk)
class AccountDeleteView(DeleteView):
model = User
success_url = reverse_lazy("index")
def get_object(self, queryset=None):
if queryset is None:
queryset = self.get_queryset()
return queryset.get(pk=self.request.user.pk)