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.
+
+
{% 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