changeset 182:b2d023049d85

Simplify {% svpagemenu %} call
author Sylvain Beucler <beuc@beuc.net>
date Sat, 24 Jul 2010 17:49:08 +0200
parents cbee3f7ef687
children 845272b1916d
files savane/svmain/templatetags/svpagemenu.py savane/svmain/urls.py templates/svmain/group_admin.html templates/svmain/group_detail.html
diffstat 4 files changed, 31 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/savane/svmain/templatetags/svpagemenu.py
+++ b/savane/svmain/templatetags/svpagemenu.py
@@ -18,21 +18,26 @@
 
 from django import template
 from django.core.urlresolvers import reverse
+import savane.svmain.models as svmain_models
 
 register = template.Library()
 
 @register.inclusion_tag('svmain/svpagemenu.html', takes_context=True)
-def svpagemenu(context):
-    if context['menu_name'] == 'group':
+def svpagemenu(context, menu_name):
+    if menu_name == 'group':
         entries = []
         entry_home = { 'text' : 'Home',
-                   'href' : reverse('savane.svmain.group_detail', args=[context['group']]),
+                   'href' : reverse('savane.svmain.group_detail', args=[context['group'].name]),
                    'title': "Project Main Page at %s" % 'this website'}
         entry_home['children'] = []
         entry_home['children'].append({'text' : 1.1, 'href' : 1.1, 'title': 1.1 })
         if (context['user'].groups.filter(name=context['group']).count()):
             entry_home['children'].append({'separator' : True })
             entry_home['children'].append({'text' : "I'm a member", 'href' : 1.2, 'title': 1.2 })
+        if (svmain_models.Membership.objects.filter(user=context['user'], group=context['group'], admin_flags='A').count()):
+            entry_home['children'].append({'separator' : True })
+            entry_home['children'].append({'text' : "I'm an admin",
+                                           'href' : reverse('savane.svmain.group_admin', args=[context['group'].name]) })
 
         entry_test = {
                     'text' : 2, 'href' : 2, 'title': 2, 'children':
@@ -43,12 +48,12 @@
         entries.append(entry_home)
         entries.append(entry_test)
         return { 'entries' : entries,
-                 'menu_name': context['menu_name'],
+                 'menu_name': menu_name,
         }
-    elif context['menu_name'] == 'my':
+    elif menu_name == 'my':
         return {
             'entries':
             [
             ],
-            'menu_name': context['menu_name'],
+            'menu_name': menu_name,
         }
--- a/savane/svmain/urls.py
+++ b/savane/svmain/urls.py
@@ -76,12 +76,15 @@
       { 'queryset' : auth_models.Group.objects.all(),
         'slug_field' : 'name',
         'extra_context' : { 'title' : 'Project summary' },
-        'template_name' : 'svmain/group_detail.html', },
+        'template_name' : 'svmain/group_detail.html',
+        'template_object_name' : 'group', },
       name='savane.svmain.group_detail'),
   url(r'^pr/(?P<slug>[-\w]+)/$', views.group_redir),
   url(r'^projects/(?P<slug>[-\w]+)/$', views.group_redir),
   url(r'^p/(?P<slug>[-\w]+)/join/$', views.group_join),
-  url(r'^p/(?P<slug>[-\w]+)/admin/$', views.group_admin),
+  url(r'^p/(?P<slug>[-\w]+)/admin/$', views.group_admin,
+      { 'extra_context' : { 'title' : 'Project administration' }, },
+      name='savane.svmain.group_admin'),
 
   url(r'^license/$', 'django.views.generic.list_detail.object_list',
       { 'queryset' : svmain_models.License.objects.all(),
--- a/templates/svmain/group_admin.html
+++ b/templates/svmain/group_admin.html
@@ -3,18 +3,18 @@
 {% load svpagemenu %}
 
 {% block pagemenu %}
-  {% with "group" as menu_name %}
-  {% svpagemenu %}
-  {% endwith %}
+  {% svpagemenu "group" %}
 {% endblock %}
 
 {% block content %}
 
 <p>
-Group: {{group.name}}<br />
+Project: {{group.name}}<br />
 </p>
 
-<p>Manage members</p>
+<ul>
+<li><a href="members/">Manage members</a></li>
+</ul>
 
 {% endblock %}
 
--- a/templates/svmain/group_detail.html
+++ b/templates/svmain/group_detail.html
@@ -1,19 +1,24 @@
 {% extends "base.html" %}
 {% load i18n %}
+{% load svpagemenu %}
+
+{% block pagemenu %}
+  {% svpagemenu "group" %}
+{% endblock %}
 
 {% block content %}
 
 <p>
-Name: {{object.name}}<br />
-License: <a href="{{object.svgroupinfo.license.get_absolute_url}}">{{object.svgroupinfo.license.name}}</a><br />
-Development status: {{object.svgroupinfo.devel_status}}<br />
+Name: {{group.name}}<br />
+License: <a href="{{group.svgroupinfo.license.get_absolute_url}}">{{group.svgroupinfo.license.name}}</a><br />
+Development status: {{group.svgroupinfo.devel_status}}<br />
 </p>
 
 <p>Members:</p>
 
-{% if object.user_set.all %}
+{% if group.user_set.all %}
 <ul>
-  {% for user in object.user_set.all %}
+  {% for user in group.user_set.all %}
   <li><a href="{% url savane.svmain.user_detail user.username %}">{{ user.username }}</a></li>
   {% endfor %}
   </ul>