Adhésion a un groupe
authorPA Parent <paparent@paparent.me>
Tue, 5 Jul 2011 18:59:23 +0000 (14:59 -0400)
committerPA Parent <paparent@paparent.me>
Tue, 5 Jul 2011 18:59:23 +0000 (14:59 -0400)
auf_savoirs_en_partage/chercheurs/views.py
auf_savoirs_en_partage/templates/chercheurs/groupe_retrieve.html
auf_savoirs_en_partage/urls.py

index 80548c4..0b919ec 100644 (file)
@@ -1,7 +1,7 @@
 # -*- encoding: utf-8 -*-
 from chercheurs.decorators import chercheur_required
 from chercheurs.forms import ChercheurSearchForm, SetPasswordForm, ChercheurFormGroup, AuthenticationForm, GroupeSearchForm, MessageForm
-from chercheurs.models import Chercheur, Groupe, Message
+from chercheurs.models import Chercheur, Groupe, Message, ChercheurGroupe
 from chercheurs.utils import get_django_user_for_email
 from datamaster_modeles.models import Etablissement, Region
 from django.conf import settings
@@ -242,16 +242,42 @@ def groupe_index(request):
         'est_chercheur': est_chercheur,
     }, context_instance=RequestContext(request))
 
+def groupe_adhesion(request, id):
+    try:
+        groupe = get_object_or_404(Groupe, id=id)
+        chercheur = Chercheur.objects.get(courriel=request.user.email)
+        cg, created = ChercheurGroupe.objects.get_or_create(chercheur=chercheur, groupe=groupe)
+        if created:
+            cg.actif = 0
+            cg.save()
+    except:
+        pass
+
+    return HttpResponseRedirect(url('groupe_retrieve', kwargs={'id': id}))
+
 def groupe_retrieve(request, id):
     groupe = get_object_or_404(Groupe, id=id)
     membres = groupe.membership.all().order_by('-date_modification')
     messages = groupe.message_set.all()[:5]
 
+    est_chercheur, est_membre, est_membre_actif = False, False, False
+    if request.user.is_authenticated():
+        try:
+            chercheur = Chercheur.objects.get(courriel=request.user.email)
+            est_chercheur = True
+            est_membre = chercheur in groupe.membres.all()
+            est_membre_actif = bool(len(groupe.membership.filter(chercheur=chercheur, actif=True)))
+        except Chercheur.DoesNotExist:
+            pass
+
     return render_to_response(
         "chercheurs/groupe_retrieve.html", {
             'groupe': groupe,
             'membres': membres,
             'messages': messages,
+            'est_chercheur': est_chercheur,
+            'est_membre': est_membre,
+            'est_membre_actif': est_membre_actif,
         }, context_instance=RequestContext(request)
     )
 
index 52fe098..df0ecc6 100644 (file)
@@ -7,6 +7,18 @@
 
        <p>{{ groupe.page_accueil|safe }}</p>
 
+       {% if not est_chercheur  %}
+       <p><em>Pour rejoindre ce groupe, vous devez vous <a href="{% url chercheurs.views.inscription %}">inscrire en tant que chercheur</a>.</em></p>
+       {% else %}
+               {% if not est_membre %}
+               <p><em><a href="{% url chercheurs.views.groupe_adhesion groupe.pk %}">Cliquer ici pour devenir membre</a>. Votre demande doit être approuver par le responsable du groupe.</em></p>
+               {% else %}
+                       {% if not est_membre_actif %}
+                       <p><em>Votre demande d'adhésion n'a pas encore été approuvé par le reponsable.</em></p>
+                       {% endif %}
+               {% endif %}
+       {% endif %}
+
        <h2>Derniers messages <a href="{% url rss_messages groupe.pk %}"><img src="/media/img/feed.png" /></a></h2>
        {% if messages %}
                {% for message in messages.all %}
index b6786c2..1e8b8fb 100644 (file)
@@ -106,6 +106,7 @@ urlpatterns = sep_patterns + patterns(
     # groupes
     (r'^groupes/$', 'chercheurs.views.groupe_index'),
     url(r'^groupes/(?P<id>\d+)/$', 'chercheurs.views.groupe_retrieve', name='groupe_retrieve'),
+    url(r'^groupes/(?P<id>\d+)/adhesion/$', 'chercheurs.views.groupe_adhesion', name='groupe_adhesion'),
     url(r'^groupes/(?P<id>\d+)/messages/$', 'chercheurs.views.groupe_messages', name='groupe_messages'),
 
     # section par discipline et/ou région