|
|
|
@ -1,5 +1,8 @@ |
|
|
|
from django.contrib.auth.models import User, Group |
|
|
|
from django.views.generic import CreateView, UpdateView, DeleteView |
|
|
|
from django.contrib.auth.views import LoginView, LogoutView, PasswordChangeView |
|
|
|
from django.contrib.auth.hashers import make_password |
|
|
|
from django.contrib.messages.views import SuccessMessageMixin |
|
|
|
from django.urls import reverse, reverse_lazy |
|
|
|
from django.shortcuts import get_object_or_404 |
|
|
|
|
|
|
|
@ -29,6 +32,34 @@ class CreateUser(CreateView): |
|
|
|
context['validate'] = "S'inscrire" |
|
|
|
return context |
|
|
|
|
|
|
|
def form_valid(self, form): |
|
|
|
r = super().form_valid(form) |
|
|
|
self.object.set_password(form.cleaned_data['password']) |
|
|
|
self.object.save() |
|
|
|
return r |
|
|
|
|
|
|
|
class Profile(UpdateView): |
|
|
|
model = User |
|
|
|
template_name = 'users/profile.html' |
|
|
|
fields = [ |
|
|
|
'username', |
|
|
|
'first_name', |
|
|
|
'last_name', |
|
|
|
'email' |
|
|
|
] |
|
|
|
|
|
|
|
def get_context_data(self, **kwargs): |
|
|
|
context = super().get_context_data(**kwargs) |
|
|
|
context['title'] = self.object.username |
|
|
|
context['validate'] = "Modifier" |
|
|
|
return context |
|
|
|
|
|
|
|
def get_success_url(self): |
|
|
|
return reverse( |
|
|
|
'users:reset_password', |
|
|
|
kwargs={'pk': self.object.pk} |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
class CreateUserProfile(CreateView): |
|
|
|
model = UserProfile |
|
|
|
@ -84,3 +115,25 @@ class EditSchool(UpdateView): |
|
|
|
class DeleteSchool(DeleteView): |
|
|
|
model = Group |
|
|
|
|
|
|
|
|
|
|
|
class Logout(SuccessMessageMixin, LogoutView): |
|
|
|
success_message = "Vous vous êtes bien déconnecté." |
|
|
|
|
|
|
|
|
|
|
|
class Login(SuccessMessageMixin, LoginView): |
|
|
|
template_name = "edit.html" |
|
|
|
success_message = "Bienvenue !" |
|
|
|
extra_context = { |
|
|
|
'title' : "Connexion", |
|
|
|
'validate' : "Se connecter", |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
class PasswordChange(SuccessMessageMixin, PasswordChangeView): |
|
|
|
template_name = "edit.html" |
|
|
|
success_url = reverse_lazy("home") |
|
|
|
success_message = "Le mot de passe a été changé." |
|
|
|
extra_context = { |
|
|
|
'title' : "Changer le mot de passe", |
|
|
|
'validate' : "Changer", |
|
|
|
} |
|
|
|
|