1
0
mirror of https://gitlab.com/animath/si/plateforme-corres2math.git synced 2025-07-04 19:44:05 +02:00

Personal page

This commit is contained in:
Yohann D'ANELLO
2020-09-24 18:39:55 +02:00
parent cd53d34443
commit 413525c6d2
10 changed files with 313 additions and 62 deletions

View File

@ -8,9 +8,9 @@ from django.shortcuts import redirect, resolve_url
from django.urls import reverse_lazy
from django.utils.http import urlsafe_base64_decode
from django.utils.translation import gettext_lazy as _
from django.views.generic import CreateView, DetailView, TemplateView
from django.views.generic import CreateView, DetailView, RedirectView, TemplateView, UpdateView
from .forms import CoachRegistrationForm, SignupForm, StudentRegistrationForm
from .forms import CoachRegistrationForm, SignupForm, StudentRegistrationForm, UserForm
class SignupView(CreateView):
@ -118,3 +118,40 @@ class UserResendValidationEmailView(LoginRequiredMixin, DetailView):
user = self.get_object()
user.registration.send_email_validation_link()
return redirect('registration:email_validation_sent')
class MyAccountDetailView(LoginRequiredMixin, RedirectView):
def get_redirect_url(self, *args, **kwargs):
return reverse_lazy("registration:user_detail", args=(self.request.user.pk,))
class UserDetailView(LoginRequiredMixin, DetailView):
model = User
template_name = "registration/user_detail.html"
class UserUpdateView(LoginRequiredMixin, UpdateView):
model = User
form_class = UserForm
template_name = "registration/update_user.html"
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
user = self.get_object()
context["registration_form"] = user.registration.form_class(data=self.request.POST or None,
instance=self.object.registration)
return context
@transaction.atomic
def form_valid(self, form):
user = form.instance
registration_form = user.registration.form_class(data=self.request.POST or None,
instance=self.object.registration)
if not registration_form.is_valid():
return self.form_invalid(form)
registration_form.save()
return super().form_valid(form)
def get_success_url(self):
return reverse_lazy("registration:user_detail", args=(self.object.pk,))