Reactivation d'une fiche
authorPA Parent <paparent@paparent.me>
Tue, 18 Sep 2012 19:41:27 +0000 (15:41 -0400)
committerPA Parent <paparent@paparent.me>
Tue, 18 Sep 2012 19:41:27 +0000 (15:41 -0400)
auf_savoirs_en_partage/chercheurs/forms.py
auf_savoirs_en_partage/templates/chercheurs/inscription.html
auf_savoirs_en_partage/templates/chercheurs/reactiver_complete.html [new file with mode: 0644]
auf_savoirs_en_partage/templates/chercheurs/reactiver_confirm.html [new file with mode: 0644]
auf_savoirs_en_partage/templates/chercheurs/reactiver_done.html [new file with mode: 0644]
auf_savoirs_en_partage/templates/chercheurs/reactiver_email.txt [new file with mode: 0644]
auf_savoirs_en_partage/templates/chercheurs/reactiver_form.html [new file with mode: 0644]
auf_savoirs_en_partage/urls.py

index 204d7f3..b72c9ef 100644 (file)
@@ -1,7 +1,7 @@
 # -*- encoding: utf-8 -*-
 import hashlib
 from django import forms
-from django.contrib.auth.forms import AuthenticationForm as DjangoAuthenticationForm
+from django.contrib.auth.forms import AuthenticationForm as DjangoAuthenticationForm, SetPasswordForm as DjangoSetPasswordForm
 from django.db.models import Q
 from django.forms.models import inlineformset_factory
 from itertools import chain
@@ -406,6 +406,16 @@ class MessageForm(forms.ModelForm):
         model = Message
         exclude = ('chercheur', 'groupe')
 
+
+class ReactiverForm(DjangoSetPasswordForm):
+    def save(self, commit=True):
+        self.user = super(ReactiverForm, self).save(commit=False)
+        self.user.chercheur.actif = True
+        self.user.chercheur.save()
+        if commit:
+            self.user.save()
+        return self.user
+
 # Admin views
 
 class CGStatutForm(forms.Form):
index 9562863..7f3b5df 100644 (file)
@@ -9,6 +9,8 @@
 {% block contenu %}
 <h1>Inscription au répertoire de chercheurs</h1>
 
+<p><a href="{% url chercheurs-reactiver %}">Réactiver votre fiche</a></p>
+
 <form method="post">
     {% include "chercheurs/chercheur_form.html" %}
     <input type="submit" name="Submit" value="Enregistrer l'inscription" class="bouton" />
diff --git a/auf_savoirs_en_partage/templates/chercheurs/reactiver_complete.html b/auf_savoirs_en_partage/templates/chercheurs/reactiver_complete.html
new file mode 100644 (file)
index 0000000..28f4a1c
--- /dev/null
@@ -0,0 +1,9 @@
+{% extends "container_base.html" %}
+{% load url from future %}
+
+{% block contenu %}
+<div class="cadre">
+    <p>Votre ficher a été réactivé.</p>
+    <p>Vous pouvez maintenant vous <a href="{% url "chercheurs-login" %}">connecter au répertoire</a>.</p>
+</div>
+{% endblock %}
diff --git a/auf_savoirs_en_partage/templates/chercheurs/reactiver_confirm.html b/auf_savoirs_en_partage/templates/chercheurs/reactiver_confirm.html
new file mode 100644 (file)
index 0000000..ce94fab
--- /dev/null
@@ -0,0 +1,19 @@
+{% extends "container_base.html" %}
+{% load url from future %}
+
+{% block contenu %}
+<div class="cadre">
+    <h1>Réactiver votre fiche</h1>
+    {% if validlink %}
+    <form method="post">
+        <p>Veuillez choisir un nouveau mot de passe.</p>
+        {% include "table_form.html" %}
+        <input type="submit" name="Submit" value="Envoyer" />
+    </form>
+    {% else %}
+    <p>Cette clé est invalide. Assurez-vous de bien copier le lien qui vous a
+    été envoyé par courriel.</p>
+    <p>Vous pouvez aussi essayer d'<a href="{% url "chercheurs-reactiver" %}">obtenir une nouvelle clé</a>.</p>
+    {% endif %}
+</div>
+{% endblock %}
diff --git a/auf_savoirs_en_partage/templates/chercheurs/reactiver_done.html b/auf_savoirs_en_partage/templates/chercheurs/reactiver_done.html
new file mode 100644 (file)
index 0000000..003c974
--- /dev/null
@@ -0,0 +1,9 @@
+{% extends "container_base.html" %}
+{% load url from future %}
+
+{% block contenu %}
+<div class="cadre">
+    <p>Un message a été envoyé à l'adresse électronique spécifiée.</p>
+    <p><a href="{% url "savoirs.views.index" %}">Retour à l'accueil</a></p>
+</div>
+{% endblock %}
diff --git a/auf_savoirs_en_partage/templates/chercheurs/reactiver_email.txt b/auf_savoirs_en_partage/templates/chercheurs/reactiver_email.txt
new file mode 100644 (file)
index 0000000..2dfb534
--- /dev/null
@@ -0,0 +1,18 @@
+Bonjour {{user.personne.prenom}} {{user.personne.nom}},
+
+Nous avons reçu une demande de réactivation de votre fiche.
+
+Pour procéder à cette manoeuvre, veuillez suivre le lien suivant:
+
+{{ protocol }}://{{ domain }}{% url chercheurs-reactiver-confirm uidb36=uid, token=token %}
+
+Si vous n'êtes pas l'initiateur de cette demande, merci d'ignorer ce message.
+
+Si vous rencontrez des difficultés, vous pouvez écrire à : contact-savoirsenpartage@auf.org
+
+Avec nos meilleures salutations.
+
+-- 
+Savoirs en partage
+{{ protocol }}://{{ domain }}
+contact-savoirsenpartage@auf.org
diff --git a/auf_savoirs_en_partage/templates/chercheurs/reactiver_form.html b/auf_savoirs_en_partage/templates/chercheurs/reactiver_form.html
new file mode 100644 (file)
index 0000000..7a182d8
--- /dev/null
@@ -0,0 +1,21 @@
+{% extends "container_base.html" %}
+
+{% block contenu %}
+<div class="cadre">
+    <h1>Réactiver votre riche</h1>
+
+    <p>Si vous avez déjà procédé à une inscription dans Savoirs en Partage, mais que votre fiche n'apparait plus sur le portail publique, il se peut qu'elle ait été désactivée : en effet, pour assurer la qualité et l'actualité des informations du Répertoire des chercheurs, les fiches des chercheurs qui ne se sont pas connectés à leur "Espace chercheur" depuis plus d'un an ne sont plus visibles dans la partie publique du site. Ces fiches restent cependant archivées dans notre système (sauf demande de votre part) et vous pouvez les réactiver en renseignant le formulaire ci-dessous.</p>
+    <form method="post">
+        {% csrf_token %}
+        <p>Veuillez entrer l'adresse électronique avec laquelle vous aviez completé votre inscription.</p>
+        <p>
+            {{ form.email }}
+            {% if form.email.errors %}{{ form.email.errors }}{% endif %}
+        </p>
+        <input type="submit" name="Submit" value="Envoyer" class="bouton" />
+    </form>
+
+    <p>En cas de problème, merci de contacter directement le webmestre du site en ecrivant à <a href="mailto:contact-savoirsenpartage@auf.org">contact-savoirsenpartage@auf.org</a> et en indiquant vos noms et prénoms.</p>
+</div>
+{% endblock %}
+
index 15905cb..4501d48 100644 (file)
@@ -10,6 +10,9 @@ from savoirs.rss import \
         FilChercheurs, FilRessources, FilActualites, \
         FilAppels, FilEvenements, FilSites, FilMessages
 
+from chercheurs.forms import ReactiverForm
+
+
 admin.autodiscover()
 
 handler500 = "views.page_500"
@@ -99,12 +102,14 @@ urlpatterns = sep_patterns + patterns(
     url(r'^chercheurs/edit/$', 'chercheurs.views.edit'),
     url(r'^chercheurs/conversion$', 'savoirs.views.page_statique',
         kwargs={'id': 'table-de-passage'}, name='conversion'),
+
     url(r'^chercheurs/connexion/$', 'chercheurs.views.login',
         kwargs={'template_name': 'chercheurs/login.html'},
         name='chercheurs-login'),
     url(r'^chercheurs/deconnexion/$', 'django.contrib.auth.views.logout',
         kwargs={'template_name': 'chercheurs/logged_out.html'},
         name='chercheurs-logout'),
+
     url(r'^chercheurs/changement-mdp/$', 'chercheurs.views.password_change',
         kwargs={
             'template_name': 'chercheurs/password_change_form.html',
@@ -115,6 +120,8 @@ urlpatterns = sep_patterns + patterns(
         'django.contrib.auth.views.password_change_done',
         kwargs={'template_name': 'chercheurs/password_change_done.html'},
         name='chercheurs-password-change-done'),
+
+    # Oublié mot de passe
     url(r'^chercheurs/oubli-mdp/$', 'django.contrib.auth.views.password_reset',
         kwargs={
             'template_name': 'chercheurs/password_reset_form.html',
@@ -133,6 +140,29 @@ urlpatterns = sep_patterns + patterns(
     url(r'^chercheurs/oubli-mdp-fini/$',
         'django.contrib.auth.views.password_reset_complete',
         kwargs={'template_name': 'chercheurs/password_reset_complete.html'}),
+
+    # Réactiver fiche
+    url(r'^chercheurs/reactiver/$', 'django.contrib.auth.views.password_reset',
+        kwargs={
+            'template_name': 'chercheurs/reactiver_form.html',
+            'email_template_name': 'chercheurs/reactiver_email.txt',
+            'post_reset_redirect': '/chercheurs/reactiver-envoye/'
+        },
+        name='chercheurs-reactiver'),
+    url(r'^chercheurs/reactiver-envoye/$',
+        'django.contrib.auth.views.password_reset_done',
+        kwargs={'template_name': 'chercheurs/reactiver_done.html'},
+        name='chercheurs-reactiver-done'),
+    url(r'^chercheurs/reactiver-retour/(?P<uidb36>.*)/(?P<token>.*)/$',
+        'django.contrib.auth.views.password_reset_confirm',
+        kwargs={'template_name': 'chercheurs/reactiver_confirm.html',
+                'set_password_form': ReactiverForm},
+        name='chercheurs-reactiver-confirm'),
+    url(r'^chercheurs/reactiver-fini/$',
+        'django.contrib.auth.views.password_reset_complete',
+        kwargs={'template_name': 'chercheurs/reactiver_complete.html'}),
+
+    # auto complete
     url(r'^etablissements/autocomplete/$',
         'chercheurs.views.etablissements_autocomplete'),
     url(r'^etablissements/autocomplete/(?P<pays>.*)/$',