From 850c928dd87327d7712213c4515516ebaf542295 Mon Sep 17 00:00:00 2001 From: agerbaud Date: Thu, 20 Jul 2017 17:28:41 +0200 Subject: [PATCH] Updated utilisateurs:details view --- .../templates/utilisateurs/details.html | 24 ++++++++++--- utilisateurs/views.py | 34 +++++++++++++++++++ 2 files changed, 53 insertions(+), 5 deletions(-) diff --git a/utilisateurs/templates/utilisateurs/details.html b/utilisateurs/templates/utilisateurs/details.html index c0391e1..81d2f2e 100644 --- a/utilisateurs/templates/utilisateurs/details.html +++ b/utilisateurs/templates/utilisateurs/details.html @@ -1,8 +1,22 @@ {% extends "base.html" %} - +{% load bootstrap3 %} {% block page_content %} - -{{ user.first_name }}, {{ user.last_name }} - +
+ +

Vous avez participé à {{nbr_maraudes}} maraudes, dont {{nbr_maraudes_annee}} cette année.

+
+
+
+
+

Modifier le mot de passe

+
+ + + {% csrf_token %} + {{ password_change_form.as_table }} + + +
+
+
{% endblock %} - diff --git a/utilisateurs/views.py b/utilisateurs/views.py index 2886a84..eeb166a 100644 --- a/utilisateurs/views.py +++ b/utilisateurs/views.py @@ -1,4 +1,8 @@ from django.views import generic +from django.contrib.auth import update_session_auth_hash +from django.contrib.auth.forms import PasswordChangeForm +from django.utils import timezone +from maraudes.models import Maraude from .models import Professionnel from .mixins import MaraudeurMixin @@ -7,7 +11,37 @@ class UtilisateurView(MaraudeurMixin, generic.DetailView): template_name = "utilisateurs/details.html" model = Professionnel + form = None + def get(self, request, **kwargs): + if not self.form: + self.form = PasswordChangeForm(request.user) + return super().get(request, **kwargs) + + def post(self, request, **kwargs): + form = PasswordChangeForm(request.user, request.POST) + if form.is_valid(): + user = form.save() + update_session_auth_hash(request, user) # Important! + messages.success(request, 'Your password was successfully updated!') + else: + self.form = form + messages.error(request, 'Please correct the error below.') + + return self.get(request, **kwargs) + def get_object(self): qs = self.get_queryset() return qs.filter(pk=self.request.user.pk) + + def get_context_data(self, **kwargs): + context = super().get_context_data(**kwargs) + context['password_change_form'] = self.form + + user_maraudes = Maraude.objects.all_of(self.request.user) + context['nbr_maraudes'] = user_maraudes.count() + + current_year = timezone.localtime(timezone.now()).date().year + context['nbr_maraudes_annee'] = user_maraudes.filter(date__year=current_year).count() + + return context