groups/home: add a link to subscribe to a group master
authorNicolas Iooss <nicolas.iooss_git@polytechnique.org>
Thu, 8 Aug 2013 16:38:43 +0000 (18:38 +0200)
committerNicolas Iooss <nicolas.iooss_git@polytechnique.org>
Thu, 8 Aug 2013 16:38:43 +0000 (18:38 +0200)
Signed-off-by: Nicolas Iooss <nicolas.iooss_git@polytechnique.org>
xnet/groups/templates/groups/home.html
xnet/groups/urls.py
xnet/groups/views.py

index 5876512..df120b4 100644 (file)
@@ -8,6 +8,21 @@
         {% if group.web %}
             <p><span>Web</span> : <a href="{{ group.web }}">{{ group.web }}</a></p>
         {% endif %}
+        {% if user.is_authenticated %}
+            <p><span>Inscription</span> :
+            {% if not membership %}
+                Non inscrit.
+                <a href="{% url 'groups:membership-add' group.short user.username %}">
+                    <i class="icon-plus"></i>M'inscrire
+                </a>
+            {% else %}
+                {{ membership.state }}.
+                <a href="{% url 'groups:membership-delete' group.short user.username %}">
+                    <i class="icon-trash"></i>Me désinscrire
+                 </a>
+            {% endif %}
+            </p>
+        {% endif %}
         {% if group.description %}
             <p class="pull-left">{{ group.description }}</p>
         {% endif %}
index 35acc4e..7fd8ced 100644 (file)
@@ -6,5 +6,6 @@ urlpatterns = patterns(
     url(r'^$', 'index', name='group-list'),
     url(r'^(\w+)/$', 'home', name='group-home'),
     url(r'^(\w+)/directory/?$', 'directory', name='group-directory'),
+    url(r'^(\w+)/add/([a-zA-Z0-9\.]+)$', 'membership_add', name='membership-add'),
     url(r'^(\w+)/delete/([a-zA-Z0-9\.]+)$', 'membership_delete', name='membership-delete'),
 )
index 271604d..c15643a 100644 (file)
@@ -13,9 +13,16 @@ def index(request):
 
 
 def home(request, slug):
+    group = get_object_or_404(XGroup, short=slug)
+    try:
+        membership = Membership.objects.get(xgroup=group, user=request.user)
+    except Membership.DoesNotExist:
+        membership = None
+
     return render(request, 'groups/home.html', {
-        'group': get_object_or_404(XGroup, short=slug),
+        'group': group,
         'sidebar': 'home',
+        'membership': membership,
     })
 
 
@@ -32,6 +39,10 @@ def directory(request, group, membership=None):
     })
 
 
+def membership_add(request, group, user_to_add):
+    pass
+
+
 @group_required(level=Membership.LEVEL_ADMIN)
 def membership_delete(request, group, to_delete, membership=None):
     pass