[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Savannah-cvs] [SCM] Savane-cleanup framework branch, master, updated. 4
From: |
Sylvain Beucler |
Subject: |
[Savannah-cvs] [SCM] Savane-cleanup framework branch, master, updated. 49aa3e88609d97cf4b512b937cc57573456d5265 |
Date: |
Sun, 25 Jul 2010 17:18:36 +0000 |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Savane-cleanup framework".
The branch, master has been updated
via 49aa3e88609d97cf4b512b937cc57573456d5265 (commit)
from 1a41d71870dc3d1097a375a514971f5bf011f34b (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://git.savannah.gnu.org/cgit/savane-cleanup/framework.git/commit/?id=49aa3e88609d97cf4b512b937cc57573456d5265
commit 49aa3e88609d97cf4b512b937cc57573456d5265
Author: Sylvain Beucler <address@hidden>
Date: Sun Jul 25 19:18:28 2010 +0200
Add separate project memberlist page
diff --git a/savane/svmain/models.py b/savane/svmain/models.py
index 1d7bc51..e12f751 100644
--- a/savane/svmain/models.py
+++ b/savane/svmain/models.py
@@ -493,8 +493,11 @@ class SvGroupInfo(models.Model):
else:
return self.group.name
- def get_admins(self):
- return auth_models.User.objects.filter(membership__admin_flags='A')
+ def get_admin_memberships(self):
+ return self.group.membership_set.filter(admin_flags='A')
+
+ def get_active_memberships(self):
+ return self.group.membership_set.exclude(admin_flags='P')
@staticmethod
def query_active_groups_raw(conn, fields):
diff --git a/savane/svmain/templatetags/svtopmenu.py
b/savane/svmain/templatetags/svtopmenu.py
index 460d8b6..5f0c739 100644
--- a/savane/svmain/templatetags/svtopmenu.py
+++ b/savane/svmain/templatetags/svtopmenu.py
@@ -18,8 +18,9 @@
from django import template
from django.core.urlresolvers import reverse
-import savane.svmain.models as svmain_models
from django.conf import settings
+from django.utils.translation import ugettext as _
+import savane.svmain.models as svmain_models
register = template.Library()
@@ -35,20 +36,21 @@ def svtopmenu(context, menu_name):
"""
icon = 'main'
entries = []
+ group = context['group']
if menu_name == 'group':
entry_home = { 'text' : 'Home',
- 'href' : reverse('savane.svmain.group_detail',
args=[context['group'].name]),
+ 'href' : reverse('savane.svmain.group_detail',
args=[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({'text' : _("Main"), 'href' :
reverse('savane.svmain.group_detail', args=[group.name]) })
+ entry_home['children'].append({'text' : _("View Members"), 'href' :
reverse('savane.svmain.group_memberlist', args=[group.name]) })
+ if (svmain_models.Membership.is_admin(context['user'], group)):
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_home['children'].append({'text' : _("Administer:"),
'strong': True,
+ 'href' :
reverse('savane.svmain.group_admin', args=[group.name]) })
+ entry_home['children'].append({'text' : _("Manage Members"),
+ 'href' :
reverse('savane.svmain.group_admin_members', args=[group.name]) })
entry_test = {
'text' : 2, 'href' : 2, 'title': 2, 'children':
diff --git a/savane/svmain/urls.py b/savane/svmain/urls.py
index dd596ec..1aa77d8 100644
--- a/savane/svmain/urls.py
+++ b/savane/svmain/urls.py
@@ -84,6 +84,15 @@ urlpatterns += patterns ('',
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]+)/memberlist/$', object_detail,
+ { 'queryset' : auth_models.Group.objects.all(),
+ 'slug_field' : 'name',
+ 'extra_context' : { 'title' : 'Summary: Project Memberlist' },
+ 'template_name' : 'svmain/group_memberlist.html',
+ 'template_object_name' : 'group', },
+ name='savane.svmain.group_memberlist'),
+)
+urlpatterns += decorated_patterns ('', login_required,
url(r'^p/(?P<slug>[-\w]+)/join/$', views.group_join),
)
urlpatterns += decorated_patterns ('', only_project_admin,
diff --git a/static_media/savane/css/Savannah.css
b/static_media/savane/css/Savannah.css
index bcdade7..02b7037 100644
--- a/static_media/savane/css/Savannah.css
+++ b/static_media/savane/css/Savannah.css
@@ -569,7 +569,7 @@ li.topmenuitemsubmenuseparator {
-.boxtitle {
+.box th, .boxtitle {
font-weight: bold;
text-align: center;
text-transform: capitalize;
@@ -1077,7 +1077,7 @@ li.topmenuitemsubmenu:hover {
margin-right: 1%;
}
-.boxtitle {
+.box th, .boxtitle {
background-image: url("../images/leopard.png");
background-color: #eddb5a;
border: thin outset #641212;
diff --git a/templates/svmain/group_detail.html
b/templates/svmain/group_detail.html
index b9136b7..56d60cb 100644
--- a/templates/svmain/group_detail.html
+++ b/templates/svmain/group_detail.html
@@ -11,24 +11,24 @@
<div class="indexright">
<div class="box">
<div class="boxtitle">{% trans "Membership Info" %}</div>
- {% if group.svgroupinfo.get_admins %}
- <div class="boxitem"><span class="smaller">{% trans "Project Admins:"
%}</span></div>
- {% for user in group.svgroupinfo.get_admins %}
- <div class="{% cycle 'boxitemalt' 'boxitem' %}"><span
class="smaller">
- - <a href="{% url savane.svmain.user_detail user.username %}">{{
user.svuserinfo.get_full_name_display }}</a></span></div>
+ {% if group.svgroupinfo.get_admin_memberships %}
+ <div class="boxitem smaller">{% trans "Project Admins:" %}</div>
+ {% for membership in group.svgroupinfo.get_admin_memberships %}
+ <div class="{% cycle 'boxitemalt' 'boxitem' %} smaller">
+ - <a href="{% url savane.svmain.user_detail membership.user.username
%}">{{ membership.user.svuserinfo.get_full_name_display }}</a></div>
{% endfor %}
{% else %}
- <div class="boxitem"><span class="smaller">{% trans "No members!"
%}</span></div>
+ <div class="boxitem smaller">{% trans "No members!" %}</div>
{% endif %}
- <div class="boxitem"><span class="smaller">{% blocktrans count
group.user_set.count as count %}{{count}} active member{% plural %}{{count}}
active members{% endblocktrans %}</span></div>
- <div class="boxitemalt"><span class="smaller">[<a href="memberlist/">{%
trans "View Members" %}</a>]</span></div>
+ <div class="boxitem smaller">{% blocktrans count group.user_set.count as
count %}{{count}} active member{% plural %}{{count}} active members{%
endblocktrans %}</div>
+ <div class="boxitemalt smaller">[<a href="memberlist/">{% trans "View
Members" %}</a>]</div>
</div>
<div class="box">
<div class="boxtitle">{% trans "Group identification" %}</div>
- <div class="boxitem"><span class="smaller">{% trans "Id:" %}
<strong>#{{group.pk}}</strong></span></div>
- <div class="boxitemalt"><span class="smaller">{% trans "System Name:" %}
<strong>{{group.name}}</strong></span></div>
- <div class="boxitem"><span class="smaller">{% trans "Name:" %}
<strong>{{group.svgroupinfo.full_name}}</strong></span></div>
- <div class="boxitemalt"><span class="smaller">{% trans "Group Type:" %}
<strong>{{group.svgroupinfo.type.name}}</strong></span></div>
+ <div class="boxitem smaller">{% trans "Id:" %}
<strong>#{{group.pk}}</strong></div>
+ <div class="boxitemalt smaller">{% trans "System Name:" %}
<strong>{{group.name}}</strong></div>
+ <div class="boxitem smaller">{% trans "Name:" %}
<strong>{{group.svgroupinfo.full_name}}</strong></div>
+ <div class="boxitemalt smaller">{% trans "Group Type:" %}
<strong>{{group.svgroupinfo.type.name}}</strong></div>
</div>
</div>
diff --git a/templates/svmain/group_memberlist.html
b/templates/svmain/group_memberlist.html
new file mode 100644
index 0000000..1e4c32b
--- /dev/null
+++ b/templates/svmain/group_memberlist.html
@@ -0,0 +1,45 @@
+{% extends "base.html" %}
+{% load i18n %}
+{% load svtopmenu %}
+
+{% block title %}
+{{group.svgroupinfo.get_full_name_display}} - {{title}}
+{% endblock %}
+
+{% block icon %}people{% endblock %}
+
+{% block topmenu %}
+ {% svtopmenu "group" %}
+{% endblock %}
+
+{% block content %}
+
+<table class="box">
+<tr><th></th><th>Member</th><th>Resume and skills</th></tr>
+{% for membership in group.svgroupinfo.get_active_memberships %}
+<tr class="{% cycle 'boxitemalt' 'boxitem' %}">
+ <td>
+ {% ifequal membership.admin_flags 'A' %}
+ <img class="icon"
+ alt="{% trans "Project Administrator" %}"
+
src="{{STATIC_MEDIA_URL}}savane/images/common/roles1/project-admin.orig.png" />
+ {% else %}
+ <img class="icon"
+ alt="{% trans "Project Member" %}"
+
src="{{STATIC_MEDIA_URL}}savane/images/common/roles1/project-member.orig.png" />
+ {% endifequal %}
+ </td>
+ <td><a href="{% url savane.svmain.user_detail membership.user.username
%}">{{ membership.user.svuserinfo.get_full_name_display }}</a></td>
+ <td>TODO</td>
+{% endfor %}
+</table>
+
+{% endblock %}
+
+{% comment %}
+Local Variables: **
+mode: django-html **
+tab-width: 4 **
+indent-tabs-mode: nil **
+End: **
+{% endcomment %}
diff --git a/templates/svmain/svtopmenu.html b/templates/svmain/svtopmenu.html
index ab75e21..3ceed89 100644
--- a/templates/svmain/svtopmenu.html
+++ b/templates/svmain/svtopmenu.html
@@ -5,10 +5,12 @@
<ul id="submenu{{forloop.counter}}" class="topmenuitemsubmenu">
{% for l2 in l1.children %}
{% if l2.separator %}
- <li class="topmenuitemsubmenuseparator"> </li>
- {% else %}
- <li class="topmenuitemsubmenu"><a href="{{l2.href}}"
title="{{l2.title}}">{{ l2.text }}</a></li>
- {% endif %}
+ <li class="topmenuitemsubmenuseparator"> </li>
+ {% else %}
+ <li class="topmenuitemsubmenu"><a href="{{l2.href}}"
title="{{l2.title}}">
+ {% if l2.strong %}<strong>{{ l2.text }}</strong>{% else %}{{ l2.text
}}{% endif %}
+ </a></li>
+ {% endif %}
{% endfor %}
</ul>
</li>
-----------------------------------------------------------------------
Summary of changes:
savane/svmain/models.py | 7 +++-
savane/svmain/templatetags/svtopmenu.py | 20 +++++++------
savane/svmain/urls.py | 9 ++++++
static_media/savane/css/Savannah.css | 4 +-
templates/svmain/group_detail.html | 24 ++++++++--------
templates/svmain/group_memberlist.html | 45 +++++++++++++++++++++++++++++++
templates/svmain/svtopmenu.html | 10 ++++---
7 files changed, 90 insertions(+), 29 deletions(-)
create mode 100644 templates/svmain/group_memberlist.html
hooks/post-receive
--
Savane-cleanup framework
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Savannah-cvs] [SCM] Savane-cleanup framework branch, master, updated. 49aa3e88609d97cf4b512b937cc57573456d5265,
Sylvain Beucler <=