mirror of
https://gitlab.crans.org/bde/nk20
synced 2025-06-21 01:48:21 +02:00
add a profile_update view
This commit is contained in:
@ -16,5 +16,6 @@ urlpatterns = [
|
||||
path('club/<int:pk>/add_member/',views.ClubAddMemberView.as_view(),name="club_add_member"),
|
||||
path('club/create/',views.ClubCreateView.as_view(),name="club_create"),
|
||||
path('user/',views.UserListView.as_view(),name="user_list"),
|
||||
path('user/<int:pk>',views.UserDetailView.as_view(),name="user_detail")
|
||||
path('user/<int:pk>',views.UserDetailView.as_view(),name="user_detail"),
|
||||
path('user/<int:pk>/update',views.UserUpdateView.as_view(),name="user_update_profile"),
|
||||
]
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
from django.contrib.auth.mixins import LoginRequiredMixin
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from django.views.generic import CreateView, ListView, DetailView
|
||||
from django.views.generic import CreateView, ListView, DetailView, UpdateView
|
||||
from django.http import HttpResponseRedirect
|
||||
from django.contrib.auth.forms import UserCreationForm
|
||||
from django.contrib.auth.models import User
|
||||
@ -49,6 +49,33 @@ class UserCreateView(CreateView):
|
||||
profile.save()
|
||||
return super().form_valid(form)
|
||||
|
||||
class UserUpdateView(LoginRequiredMixin,UpdateView):
|
||||
model = User
|
||||
fields = ['first_name','last_name','username','email']
|
||||
template_name = 'member/profile_update.html'
|
||||
|
||||
second_form = ProfileForm
|
||||
def get_context_data(self,**kwargs):
|
||||
context = super().get_context_data(**kwargs)
|
||||
context["profile_form"] = self.second_form(instance=context['user'].profile)
|
||||
|
||||
return context
|
||||
|
||||
def form_valid(self, form):
|
||||
profile_form = ProfileForm(data=self.request.POST,instance=self.request.user.profile)
|
||||
if form.is_valid() and profile_form.is_valid():
|
||||
user = form.save()
|
||||
profile = profile_form.save(commit=False)
|
||||
profile.user = user
|
||||
profile.save()
|
||||
return super().form_valid(form)
|
||||
|
||||
def get_success_url(self, **kwargs):
|
||||
if kwargs:
|
||||
return reverse_lazy('member:user_detail', kwargs = {'pk': kwargs['id']})
|
||||
else:
|
||||
return reverse_lazy('member:user_detail', args = (self.object.id,))
|
||||
|
||||
class UserDetailView(LoginRequiredMixin,DetailView):
|
||||
"""
|
||||
Affiche les informations sur un utilisateur, sa note, ses clubs ...
|
||||
|
Reference in New Issue
Block a user