You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by jo...@apache.org on 2013/04/15 16:02:53 UTC
[1/7] git commit: [#5481] ticket:313 project members page
Updated Branches:
refs/heads/master 1dd8575cb -> 19585988b
[#5481] ticket:313 project members page
Project: http://git-wip-us.apache.org/repos/asf/incubator-allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-allura/commit/18f106f7
Tree: http://git-wip-us.apache.org/repos/asf/incubator-allura/tree/18f106f7
Diff: http://git-wip-us.apache.org/repos/asf/incubator-allura/diff/18f106f7
Branch: refs/heads/master
Commit: 18f106f7bc7e399e3209588c7385b087409f1b3b
Parents: 1dd8575
Author: Yuriy Arhipov <yu...@yandex.ru>
Authored: Fri Apr 5 12:56:22 2013 +0400
Committer: Cory Johns <cj...@slashdotmedia.com>
Committed: Mon Apr 15 14:01:50 2013 +0000
----------------------------------------------------------------------
Allura/allura/controllers/project.py | 19 +++++++++++++++++++
Allura/allura/lib/macro.py | 9 +++++++++
Allura/allura/lib/plugin.py | 2 +-
Allura/allura/templates/members.html | 28 ++++++++++++++++++++++++++++
Allura/allura/tests/test_globals.py | 9 ++++++++-
ForgeWiki/forgewiki/wiki_main.py | 1 +
6 files changed, 66 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/18f106f7/Allura/allura/controllers/project.py
----------------------------------------------------------------------
diff --git a/Allura/allura/controllers/project.py b/Allura/allura/controllers/project.py
index 891e18f..f91c543 100644
--- a/Allura/allura/controllers/project.py
+++ b/Allura/allura/controllers/project.py
@@ -317,6 +317,25 @@ class ProjectController(object):
return app.root, remainder
+ @expose('jinja:allura:templates/members.html')
+ @with_trailing_slash
+ def _members(self, **kw):
+ users = []
+ for user in c.project.users():
+ roles = []
+ for role in user.project_role().roles:
+ r = M.ProjectRole.query.get(_id=role)
+ if r.name not in roles:
+ roles.append(r.name)
+ users.append(dict(
+ display_name = user.display_name,
+ username = user.username,
+ url = user.url(),
+ roles = roles,
+ email_addresses = user.email_addresses,
+ skills = user.get_skills()))
+ return dict(users=users)
+
def _check_security(self):
require_access(c.project, 'read')
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/18f106f7/Allura/allura/lib/macro.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/macro.py b/Allura/allura/lib/macro.py
index ff5a0d3..4615828 100644
--- a/Allura/allura/lib/macro.py
+++ b/Allura/allura/lib/macro.py
@@ -8,6 +8,7 @@ import traceback
import pymongo
from pylons import tmpl_context as c, app_globals as g
from pylons import request
+from urlparse import urljoin
from . import helpers as h
from . import security
@@ -344,4 +345,12 @@ def project_admins():
url=user_role.user.url(),
name=user_role.user.display_name))
for user_role in admin_role.users_with_role())
+ return u'<p>Project Admins:<br/>{}</p>'.format(output)
+
+template_members = string.Template('<a href="$url">Members</a><br/>')
+@macro()
+def members():
+ output = ''.join(
+ template_members.substitute(dict(
+ url=urljoin(c.project.url(),'_members'),)))
return u'<p>{}</p>'.format(output)
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/18f106f7/Allura/allura/lib/plugin.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/plugin.py b/Allura/allura/lib/plugin.py
index efc5d07..77207a2 100644
--- a/Allura/allura/lib/plugin.py
+++ b/Allura/allura/lib/plugin.py
@@ -521,7 +521,7 @@ class ProjectRegistrationProvider(object):
if tool == 'wiki':
from forgewiki import model as WM
text = tool_config.get('home_text',
- '[[project_admins]]\n[[download_button]]')
+ '[[project_admins]]\n[[members]]\n[[download_button]]')
WM.Page.query.get(app_config_id=app.config._id).text = text
if 'tool_order' in project_template:
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/18f106f7/Allura/allura/templates/members.html
----------------------------------------------------------------------
diff --git a/Allura/allura/templates/members.html b/Allura/allura/templates/members.html
new file mode 100644
index 0000000..06d353a
--- /dev/null
+++ b/Allura/allura/templates/members.html
@@ -0,0 +1,28 @@
+{% set hide_left_bar = True %}
+{% extends g.theme.master %}
+{% block title %}Members{% endblock %}
+{% block header %}Members{% endblock %}
+{% block content %}
+<div class="grid-23">
+<div style="overflow:auto">
+<table>
+ <thead>
+ <tr>
+ <th >Developer</th>
+ <th>Username</th>
+ <th>Role/Position</th>
+ <th>Email</th>
+ </tr>
+ </thead>
+ {%for user in users%}
+ <tr>
+ <td >{{ user.display_name }}</td>
+ <td ><a href="{{ user.url }}">{{ user.username }}</a></td>
+ <td >{% for role in user.roles%} {{ role }}</br> {%endfor%}</td>
+ <td >{% for email in user.email_addresses %}{{email}}{%endfor%}</td>
+ </tr>
+ {%endfor%}
+</table>
+</div>
+</div>
+{% endblock %}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/18f106f7/Allura/allura/tests/test_globals.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/test_globals.py b/Allura/allura/tests/test_globals.py
index 7ad940e..4fa37cc 100644
--- a/Allura/allura/tests/test_globals.py
+++ b/Allura/allura/tests/test_globals.py
@@ -149,11 +149,17 @@ def test_macros():
r = g.markdown_wiki.convert('[[neighborhood_blog_posts]]')
assert 'test content' in r
+def test_macro_members():
+ user = M.User.by_username('test-admin')
+ user.display_name = u'Test Ådmin'
+ r = g.markdown_wiki.convert('[[members]]')
+ assert_equal(r, u'<div class="markdown_content"><p><a href="/p/test/_members">Members</a><br /></p>\n</div>')
+
def test_macro_project_admins():
user = M.User.by_username('test-admin')
user.display_name = u'Test Ådmin'
r = g.markdown_wiki.convert('[[project_admins]]')
- assert_equal(r, u'<div class="markdown_content"><p><a href="/u/test-admin/">Test Ådmin</a><br /></p>\n</div>')
+ assert_equal(r, u'<div class="markdown_content"><p>Project Admins:<br /><a href="/u/test-admin/">Test Ådmin</a><br /></p>\n</div>')
def test_macro_project_admins_one_br():
p_nbhd = M.Neighborhood.query.get(name='Projects')
@@ -161,6 +167,7 @@ def test_macro_project_admins_one_br():
p_test.add_user(M.User.by_username('test-user'), ['Admin'])
ThreadLocalORMSession.flush_all()
r = g.markdown_wiki.convert('[[project_admins]]\n[[download_button]]')
+
assert not '</a><br /><br /><a href=' in r, r
assert '</a><br /><a href=' in r, r
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/18f106f7/ForgeWiki/forgewiki/wiki_main.py
----------------------------------------------------------------------
diff --git a/ForgeWiki/forgewiki/wiki_main.py b/ForgeWiki/forgewiki/wiki_main.py
index 219fe00..ce253fb 100644
--- a/ForgeWiki/forgewiki/wiki_main.py
+++ b/ForgeWiki/forgewiki/wiki_main.py
@@ -247,6 +247,7 @@ This is the default page, edit it as you see fit. To add a new page simply refer
The wiki uses [Markdown](%s) syntax.
[[project_admins]]
+[[members]]
[[download_button]]
""" % url
p.commit()
[7/7] git commit: [#5481] ticket:313 fixed Project Admins
Posted by jo...@apache.org.
[#5481] ticket:313 fixed Project Admins
Project: http://git-wip-us.apache.org/repos/asf/incubator-allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-allura/commit/56531a33
Tree: http://git-wip-us.apache.org/repos/asf/incubator-allura/tree/56531a33
Diff: http://git-wip-us.apache.org/repos/asf/incubator-allura/diff/56531a33
Branch: refs/heads/master
Commit: 56531a331aa80ed6a617ac9deac08c9a5c7fb83f
Parents: 57b3310
Author: Yuriy Arhipov <yu...@yandex.ru>
Authored: Tue Apr 9 19:07:34 2013 +0400
Committer: Cory Johns <cj...@slashdotmedia.com>
Committed: Mon Apr 15 14:01:51 2013 +0000
----------------------------------------------------------------------
Allura/allura/lib/macro.py | 2 +-
Allura/allura/tests/test_globals.py | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/56531a33/Allura/allura/lib/macro.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/macro.py b/Allura/allura/lib/macro.py
index 829897b..0f2c65f 100644
--- a/Allura/allura/lib/macro.py
+++ b/Allura/allura/lib/macro.py
@@ -345,7 +345,7 @@ def project_admins():
url=user_role.user.url(),
name=user_role.user.display_name))
for user_role in admin_role.users_with_role())
- return u'<h6>Project Admins:</h6><p>{}</p>'.format(output)
+ return u'<h6>Project Admins:</h6><div class="grid-10">{}</div><div style="clear: both;"></div>'.format(output)
template_members = string.Template('<a href="$url">Members</a><br/>')
@macro()
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/56531a33/Allura/allura/tests/test_globals.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/test_globals.py b/Allura/allura/tests/test_globals.py
index e52c00c..44c6850 100644
--- a/Allura/allura/tests/test_globals.py
+++ b/Allura/allura/tests/test_globals.py
@@ -157,7 +157,7 @@ def test_macro_project_admins():
user = M.User.by_username('test-admin')
user.display_name = u'Test Ådmin'
r = g.markdown_wiki.convert('[[project_admins]]')
- assert_equal(r, u'<div class="markdown_content"><h6>Project Admins:</h6><p><a href="/u/test-admin/">Test Ådmin</a><br /></p>\n</div>')
+ assert_equal(r, u'<div class="markdown_content"><h6>Project Admins:</h6><div class="grid-10"><a href="/u/test-admin/">Test Ådmin</a><br /></div><div style="clear: both;"></div>\n</div>')
def test_macro_project_admins_one_br():
p_nbhd = M.Neighborhood.query.get(name='Projects')
[4/7] git commit: [#5481] Removed email address from new members page
Posted by jo...@apache.org.
[#5481] Removed email address from new members page
Signed-off-by: Cory Johns <cj...@slashdotmedia.com>
Project: http://git-wip-us.apache.org/repos/asf/incubator-allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-allura/commit/4328a168
Tree: http://git-wip-us.apache.org/repos/asf/incubator-allura/tree/4328a168
Diff: http://git-wip-us.apache.org/repos/asf/incubator-allura/diff/4328a168
Branch: refs/heads/master
Commit: 4328a168eb85b08e3bf28c84bcb225c521052eb5
Parents: 56531a3
Author: Cory Johns <cj...@slashdotmedia.com>
Authored: Fri Apr 12 17:51:49 2013 +0000
Committer: Cory Johns <cj...@slashdotmedia.com>
Committed: Mon Apr 15 14:01:51 2013 +0000
----------------------------------------------------------------------
Allura/allura/controllers/project.py | 2 +-
Allura/allura/templates/members.html | 6 ++----
Allura/allura/tests/functional/test_home.py | 5 ++---
3 files changed, 5 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/4328a168/Allura/allura/controllers/project.py
----------------------------------------------------------------------
diff --git a/Allura/allura/controllers/project.py b/Allura/allura/controllers/project.py
index 6a05acf..9a72f4c 100644
--- a/Allura/allura/controllers/project.py
+++ b/Allura/allura/controllers/project.py
@@ -329,7 +329,7 @@ class ProjectController(object):
username=user.username,
url=user.url(),
roles=roles,
- email_addresses=user.email_addresses))
+ ))
return dict(users=users)
def _check_security(self):
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/4328a168/Allura/allura/templates/members.html
----------------------------------------------------------------------
diff --git a/Allura/allura/templates/members.html b/Allura/allura/templates/members.html
index 468d14c..f709d78 100644
--- a/Allura/allura/templates/members.html
+++ b/Allura/allura/templates/members.html
@@ -11,18 +11,16 @@
<th>Developer</th>
<th>Username</th>
<th>Role/Position</th>
- <th>Email</th>
</tr>
</thead>
{%for user in users%}
<tr>
<td>{{ user.display_name }}</td>
<td><a href="{{ user.url }}">{{ user.username }}</a></td>
- <td>{% for role in user.roles%} {{ role }}</br> {%endfor%}</td>
- <td>{% for email in user.email_addresses %}{{email.replace('@', ' at ')}}{%endfor%}</td>
+ <td>{{user.roles|join(', ')}}</td>
</tr>
{%endfor%}
</table>
</div>
</div>
-{% endblock %}
\ No newline at end of file
+{% endblock %}
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/4328a168/Allura/allura/tests/functional/test_home.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/functional/test_home.py b/Allura/allura/tests/functional/test_home.py
index b465808..252ad52 100644
--- a/Allura/allura/tests/functional/test_home.py
+++ b/Allura/allura/tests/functional/test_home.py
@@ -61,12 +61,11 @@ class TestProjectHome(TestController):
r = self.app.get('/p/test/_members/')
assert '<td>Test Admin</td>' in r
assert '<td><a href="/u/test-admin/">test-admin</a></td>' in r
- assert '<td> Admin</br> </td>' in r
- assert '<td>test-admin at users.localhost</td>' in r
+ assert '<td>Admin</td>' in r
def test_members_anonymous(self):
r = self.app.get('/p/test/_members/', extra_environ=dict(username='*anonymous'))
assert '<td>Test Admin</td>' in r
assert '<td><a href="/u/test-admin/">test-admin</a></td>' in r
- assert '<td> Admin</br> </td>' in r
+ assert '<td>Admin</td>' in r
[5/7] git commit: [#5481] ticket:313 fixed @, html and tests
Posted by jo...@apache.org.
[#5481] ticket:313 fixed @, html and tests
Project: http://git-wip-us.apache.org/repos/asf/incubator-allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-allura/commit/57b33100
Tree: http://git-wip-us.apache.org/repos/asf/incubator-allura/tree/57b33100
Diff: http://git-wip-us.apache.org/repos/asf/incubator-allura/diff/57b33100
Branch: refs/heads/master
Commit: 57b33100efe318e5e055843681debfe285183679
Parents: b2e7c48
Author: Yuriy Arhipov <yu...@yandex.ru>
Authored: Sun Apr 7 23:53:15 2013 +0400
Committer: Cory Johns <cj...@slashdotmedia.com>
Committed: Mon Apr 15 14:01:51 2013 +0000
----------------------------------------------------------------------
Allura/allura/controllers/project.py | 18 +++++++-----------
Allura/allura/lib/macro.py | 4 ++--
Allura/allura/templates/members.html | 10 +++++-----
Allura/allura/tests/functional/test_home.py | 14 +++++++-------
Allura/allura/tests/test_globals.py | 4 +---
5 files changed, 22 insertions(+), 28 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/57b33100/Allura/allura/controllers/project.py
----------------------------------------------------------------------
diff --git a/Allura/allura/controllers/project.py b/Allura/allura/controllers/project.py
index f91c543..6a05acf 100644
--- a/Allura/allura/controllers/project.py
+++ b/Allura/allura/controllers/project.py
@@ -322,18 +322,14 @@ class ProjectController(object):
def _members(self, **kw):
users = []
for user in c.project.users():
- roles = []
- for role in user.project_role().roles:
- r = M.ProjectRole.query.get(_id=role)
- if r.name not in roles:
- roles.append(r.name)
+ roles = M.ProjectRole.query.find({'_id': {'$in': user.project_role().roles}})
+ roles = set([r.name for r in roles])
users.append(dict(
- display_name = user.display_name,
- username = user.username,
- url = user.url(),
- roles = roles,
- email_addresses = user.email_addresses,
- skills = user.get_skills()))
+ display_name=user.display_name,
+ username=user.username,
+ url=user.url(),
+ roles=roles,
+ email_addresses=user.email_addresses))
return dict(users=users)
def _check_security(self):
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/57b33100/Allura/allura/lib/macro.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/macro.py b/Allura/allura/lib/macro.py
index 4615828..829897b 100644
--- a/Allura/allura/lib/macro.py
+++ b/Allura/allura/lib/macro.py
@@ -345,12 +345,12 @@ def project_admins():
url=user_role.user.url(),
name=user_role.user.display_name))
for user_role in admin_role.users_with_role())
- return u'<p>Project Admins:<br/>{}</p>'.format(output)
+ return u'<h6>Project Admins:</h6><p>{}</p>'.format(output)
template_members = string.Template('<a href="$url">Members</a><br/>')
@macro()
def members():
output = ''.join(
template_members.substitute(dict(
- url=urljoin(c.project.url(),'_members'),)))
+ url=urljoin(c.project.url(), '_members'),)))
return u'<p>{}</p>'.format(output)
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/57b33100/Allura/allura/templates/members.html
----------------------------------------------------------------------
diff --git a/Allura/allura/templates/members.html b/Allura/allura/templates/members.html
index 06d353a..468d14c 100644
--- a/Allura/allura/templates/members.html
+++ b/Allura/allura/templates/members.html
@@ -8,7 +8,7 @@
<table>
<thead>
<tr>
- <th >Developer</th>
+ <th>Developer</th>
<th>Username</th>
<th>Role/Position</th>
<th>Email</th>
@@ -16,10 +16,10 @@
</thead>
{%for user in users%}
<tr>
- <td >{{ user.display_name }}</td>
- <td ><a href="{{ user.url }}">{{ user.username }}</a></td>
- <td >{% for role in user.roles%} {{ role }}</br> {%endfor%}</td>
- <td >{% for email in user.email_addresses %}{{email}}{%endfor%}</td>
+ <td>{{ user.display_name }}</td>
+ <td><a href="{{ user.url }}">{{ user.username }}</a></td>
+ <td>{% for role in user.roles%} {{ role }}</br> {%endfor%}</td>
+ <td>{% for email in user.email_addresses %}{{email.replace('@', ' at ')}}{%endfor%}</td>
</tr>
{%endfor%}
</table>
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/57b33100/Allura/allura/tests/functional/test_home.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/functional/test_home.py b/Allura/allura/tests/functional/test_home.py
index 862ebf7..b465808 100644
--- a/Allura/allura/tests/functional/test_home.py
+++ b/Allura/allura/tests/functional/test_home.py
@@ -59,14 +59,14 @@ class TestProjectHome(TestController):
def test_members(self):
r = self.app.get('/p/test/_members/')
- assert '<td >Test Admin</td>' in r
- assert '<td ><a href="/u/test-admin/">test-admin</a></td>' in r
- assert '<td > Admin</br> </td>' in r
- assert '<td >test-admin@users.localhost</td>' in r
+ assert '<td>Test Admin</td>' in r
+ assert '<td><a href="/u/test-admin/">test-admin</a></td>' in r
+ assert '<td> Admin</br> </td>' in r
+ assert '<td>test-admin at users.localhost</td>' in r
def test_members_anonymous(self):
r = self.app.get('/p/test/_members/', extra_environ=dict(username='*anonymous'))
- assert '<td >Test Admin</td>' in r
- assert '<td ><a href="/u/test-admin/">test-admin</a></td>' in r
- assert '<td > Admin</br> </td>' in r
+ assert '<td>Test Admin</td>' in r
+ assert '<td><a href="/u/test-admin/">test-admin</a></td>' in r
+ assert '<td> Admin</br> </td>' in r
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/57b33100/Allura/allura/tests/test_globals.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/test_globals.py b/Allura/allura/tests/test_globals.py
index 4fa37cc..e52c00c 100644
--- a/Allura/allura/tests/test_globals.py
+++ b/Allura/allura/tests/test_globals.py
@@ -150,8 +150,6 @@ def test_macros():
assert 'test content' in r
def test_macro_members():
- user = M.User.by_username('test-admin')
- user.display_name = u'Test Ådmin'
r = g.markdown_wiki.convert('[[members]]')
assert_equal(r, u'<div class="markdown_content"><p><a href="/p/test/_members">Members</a><br /></p>\n</div>')
@@ -159,7 +157,7 @@ def test_macro_project_admins():
user = M.User.by_username('test-admin')
user.display_name = u'Test Ådmin'
r = g.markdown_wiki.convert('[[project_admins]]')
- assert_equal(r, u'<div class="markdown_content"><p>Project Admins:<br /><a href="/u/test-admin/">Test Ådmin</a><br /></p>\n</div>')
+ assert_equal(r, u'<div class="markdown_content"><h6>Project Admins:</h6><p><a href="/u/test-admin/">Test Ådmin</a><br /></p>\n</div>')
def test_macro_project_admins_one_br():
p_nbhd = M.Neighborhood.query.get(name='Projects')
[2/7] git commit: [#5481] Removed inline styles and use ULs for
admins / members macros
Posted by jo...@apache.org.
[#5481] Removed inline styles and use ULs for admins / members macros
Signed-off-by: Cory Johns <cj...@slashdotmedia.com>
Project: http://git-wip-us.apache.org/repos/asf/incubator-allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-allura/commit/19585988
Tree: http://git-wip-us.apache.org/repos/asf/incubator-allura/tree/19585988
Diff: http://git-wip-us.apache.org/repos/asf/incubator-allura/diff/19585988
Branch: refs/heads/master
Commit: 19585988b7ad24fe594bb79f1c09e9494acdaaf7
Parents: 69153ad
Author: Cory Johns <cj...@slashdotmedia.com>
Authored: Fri Apr 12 22:40:38 2013 +0000
Committer: Cory Johns <cj...@slashdotmedia.com>
Committed: Mon Apr 15 14:01:51 2013 +0000
----------------------------------------------------------------------
Allura/allura/lib/macro.py | 17 +++++++++--------
Allura/allura/nf/allura/css/site_style.css | 8 ++++++++
Allura/allura/tests/test_globals.py | 16 +++++++---------
3 files changed, 24 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/19585988/Allura/allura/lib/macro.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/macro.py b/Allura/allura/lib/macro.py
index 747ce58..53ebd6b 100644
--- a/Allura/allura/lib/macro.py
+++ b/Allura/allura/lib/macro.py
@@ -7,6 +7,7 @@ import traceback
from operator import attrgetter
import pymongo
+import jinja2
from pylons import tmpl_context as c, app_globals as g
from pylons import request
from paste.deploy.converters import asint
@@ -335,30 +336,30 @@ def img(src=None, **kw):
return '<img src="./attachment/%s" %s/>' % (src, ' '.join(attrs))
-template_project_admins = string.Template('<a href="$url">$name</a><br/>')
+template_project_admins = string.Template('<li><a href="$url">$name</a></li>')
@macro()
def project_admins():
admins = c.project.users_with_role('Admin')
output = ''.join(
template_project_admins.substitute(dict(
url=user.url(),
- name=user.display_name))
+ name=jinja2.escape(user.display_name)))
for user in admins)
- return u'<h6>Project Admins:</h6><div class="grid-10" style="margin-left: 2em">{}</div><div style="clear: both;"></div>'.format(output)
+ return u'<h6>Project Admins:</h6><ul class="md-users-list">{0}</ul>'.format(output)
-template_members = string.Template('<a href="$url">$name</a>$admin<br/>')
+template_members = string.Template('<li><a href="$url">$name</a>$admin</li>')
@macro()
def members(limit=20):
limit = asint(limit)
admins = set(c.project.users_with_role('Admin'))
members = sorted(c.project.users(), key=attrgetter('display_name'))
- output = '<div style="margin-left: 0.5em; margin-bottom: 0.5em;">%s</div>' % ''.join(
+ output = ''.join(
template_members.substitute(dict(
url=user.url(),
- name=user.display_name,
+ name=jinja2.escape(user.display_name),
admin=' (admin)' if user in admins else '',
))
for user in members[:limit])
if len(members) > limit:
- output = output + '<a href="%s_members">All Members</a>' % c.project.url()
- return u'<h6>Project Members:</h6><div style="margin-left: 1.5em;">{}</div><div style="clear: both;"></div>'.format(output)
+ output = output + '<li class="md-users-list-more"><a href="%s_members">All Members</a></li>' % c.project.url()
+ return u'<h6>Project Members:</h6><ul class="md-users-list">{0}</ul>'.format(output)
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/19585988/Allura/allura/nf/allura/css/site_style.css
----------------------------------------------------------------------
diff --git a/Allura/allura/nf/allura/css/site_style.css b/Allura/allura/nf/allura/css/site_style.css
index 2f96715..3256ad0 100644
--- a/Allura/allura/nf/allura/css/site_style.css
+++ b/Allura/allura/nf/allura/css/site_style.css
@@ -2066,6 +2066,14 @@ nav .ico {
padding: 0;
}
+.markdown_content ul.md-users-list {
+ list-style: none;
+}
+.markdown_content ul.md-users-list li.md-users-list-more {
+ margin-left: -0.5em;
+ margin-top: 0.5em;
+}
+
.media a {
float: left;
margin-right: 20px;
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/19585988/Allura/allura/tests/test_globals.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/test_globals.py b/Allura/allura/tests/test_globals.py
index 1750bdc..c1dc9a8 100644
--- a/Allura/allura/tests/test_globals.py
+++ b/Allura/allura/tests/test_globals.py
@@ -160,13 +160,11 @@ def test_macro_members():
assert_equal(r,
'<div class="markdown_content">'
'<h6>Project Members:</h6>'
- '<div style="margin-left: 1.5em;">'
- '<div style="margin-left: 0.5em; margin-bottom: 0.5em;">'
- '<a href="/u/test-admin/">Test Admin</a> (admin)<br />'
- '<a href="/u/test-user/">Test User</a><br />'
- '</div>'
- '<a href="/p/test/_members">All Members</a>'
- '</div><div style="clear: both;"></div>\n'
+ '<ul class="md-users-list">'
+ '<li><a href="/u/test-admin/">Test Admin</a> (admin)</li>'
+ '<li><a href="/u/test-user/">Test User</a></li>'
+ '<li class="md-users-list-more"><a href="/p/test/_members">All Members</a></li>'
+ '</ul>\n'
'</div>')
@with_setup(teardown=setUp) # reset everything we changed
@@ -174,7 +172,7 @@ def test_macro_project_admins():
user = M.User.by_username('test-admin')
user.display_name = u'Test Ådmin'
r = g.markdown_wiki.convert('[[project_admins]]')
- assert_equal(r, u'<div class="markdown_content"><h6>Project Admins:</h6><div class="grid-10" style="margin-left: 2em;"><a href="/u/test-admin/">Test Ådmin</a><br /></div><div style="clear: both;"></div>\n</div>')
+ assert_equal(r, u'<div class="markdown_content"><h6>Project Admins:</h6><ul class="md-users-list"><li><a href="/u/test-admin/">Test Ådmin</a></li></ul>\n</div>')
@with_setup(teardown=setUp) # reset everything we changed
def test_macro_project_admins_one_br():
@@ -185,7 +183,7 @@ def test_macro_project_admins_one_br():
r = g.markdown_wiki.convert('[[project_admins]]\n[[download_button]]')
assert not '</a><br /><br /><a href=' in r, r
- assert '</a><br /><a href=' in r, r
+ assert '</a></li><li><a href=' in r, r
@td.with_wiki
[3/7] git commit: [#5481] ticket:313 anonymous access to the members
page
Posted by jo...@apache.org.
[#5481] ticket:313 anonymous access to the members page
Project: http://git-wip-us.apache.org/repos/asf/incubator-allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-allura/commit/b2e7c48d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-allura/tree/b2e7c48d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-allura/diff/b2e7c48d
Branch: refs/heads/master
Commit: b2e7c48d27126fbc0126fe426fe753b059d9136b
Parents: 18f106f
Author: Yuriy Arhipov <yu...@yandex.ru>
Authored: Fri Apr 5 13:00:21 2013 +0400
Committer: Cory Johns <cj...@slashdotmedia.com>
Committed: Mon Apr 15 14:01:51 2013 +0000
----------------------------------------------------------------------
Allura/allura/tests/functional/test_home.py | 14 ++++++++++++++
1 files changed, 14 insertions(+), 0 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/b2e7c48d/Allura/allura/tests/functional/test_home.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/functional/test_home.py b/Allura/allura/tests/functional/test_home.py
index 758132e..862ebf7 100644
--- a/Allura/allura/tests/functional/test_home.py
+++ b/Allura/allura/tests/functional/test_home.py
@@ -56,3 +56,17 @@ class TestProjectHome(TestController):
'label': u'Test Admin (test-admin)'
}]
assert_equal(j['options'], expected)
+
+ def test_members(self):
+ r = self.app.get('/p/test/_members/')
+ assert '<td >Test Admin</td>' in r
+ assert '<td ><a href="/u/test-admin/">test-admin</a></td>' in r
+ assert '<td > Admin</br> </td>' in r
+ assert '<td >test-admin@users.localhost</td>' in r
+
+ def test_members_anonymous(self):
+ r = self.app.get('/p/test/_members/', extra_environ=dict(username='*anonymous'))
+ assert '<td >Test Admin</td>' in r
+ assert '<td ><a href="/u/test-admin/">test-admin</a></td>' in r
+ assert '<td > Admin</br> </td>' in r
+
[6/7] git commit: [#5481] Refactored and improved [[members]] macro
and replaced [[project_admins]] with it in the default wiki
Posted by jo...@apache.org.
[#5481] Refactored and improved [[members]] macro and replaced [[project_admins]] with it in the default wiki
Signed-off-by: Cory Johns <cj...@slashdotmedia.com>
Project: http://git-wip-us.apache.org/repos/asf/incubator-allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-allura/commit/69153ade
Tree: http://git-wip-us.apache.org/repos/asf/incubator-allura/tree/69153ade
Diff: http://git-wip-us.apache.org/repos/asf/incubator-allura/diff/69153ade
Branch: refs/heads/master
Commit: 69153ade3ae8056821619824d7745fdd2e1e6ce0
Parents: 4328a16
Author: Cory Johns <cj...@slashdotmedia.com>
Authored: Fri Apr 12 21:00:05 2013 +0000
Committer: Cory Johns <cj...@slashdotmedia.com>
Committed: Mon Apr 15 14:01:51 2013 +0000
----------------------------------------------------------------------
Allura/allura/lib/macro.py | 42 +++++++++++++++++------------
Allura/allura/lib/plugin.py | 2 +-
Allura/allura/tests/test_globals.py | 24 +++++++++++++++--
ForgeWiki/forgewiki/wiki_main.py | 3 +-
4 files changed, 48 insertions(+), 23 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/69153ade/Allura/allura/lib/macro.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/macro.py b/Allura/allura/lib/macro.py
index 0f2c65f..747ce58 100644
--- a/Allura/allura/lib/macro.py
+++ b/Allura/allura/lib/macro.py
@@ -4,10 +4,12 @@ import shlex
import string
import logging
import traceback
+from operator import attrgetter
import pymongo
from pylons import tmpl_context as c, app_globals as g
from pylons import request
+from paste.deploy.converters import asint
from urlparse import urljoin
from . import helpers as h
@@ -336,21 +338,27 @@ def img(src=None, **kw):
template_project_admins = string.Template('<a href="$url">$name</a><br/>')
@macro()
def project_admins():
- from allura import model as M
- output = ''
- admin_role = M.ProjectRole.query.get(project_id=c.project._id,name='Admin')
- if admin_role:
- output = ''.join(
- template_project_admins.substitute(dict(
- url=user_role.user.url(),
- name=user_role.user.display_name))
- for user_role in admin_role.users_with_role())
- return u'<h6>Project Admins:</h6><div class="grid-10">{}</div><div style="clear: both;"></div>'.format(output)
-
-template_members = string.Template('<a href="$url">Members</a><br/>')
-@macro()
-def members():
+ admins = c.project.users_with_role('Admin')
output = ''.join(
- template_members.substitute(dict(
- url=urljoin(c.project.url(), '_members'),)))
- return u'<p>{}</p>'.format(output)
+ template_project_admins.substitute(dict(
+ url=user.url(),
+ name=user.display_name))
+ for user in admins)
+ return u'<h6>Project Admins:</h6><div class="grid-10" style="margin-left: 2em">{}</div><div style="clear: both;"></div>'.format(output)
+
+template_members = string.Template('<a href="$url">$name</a>$admin<br/>')
+@macro()
+def members(limit=20):
+ limit = asint(limit)
+ admins = set(c.project.users_with_role('Admin'))
+ members = sorted(c.project.users(), key=attrgetter('display_name'))
+ output = '<div style="margin-left: 0.5em; margin-bottom: 0.5em;">%s</div>' % ''.join(
+ template_members.substitute(dict(
+ url=user.url(),
+ name=user.display_name,
+ admin=' (admin)' if user in admins else '',
+ ))
+ for user in members[:limit])
+ if len(members) > limit:
+ output = output + '<a href="%s_members">All Members</a>' % c.project.url()
+ return u'<h6>Project Members:</h6><div style="margin-left: 1.5em;">{}</div><div style="clear: both;"></div>'.format(output)
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/69153ade/Allura/allura/lib/plugin.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/plugin.py b/Allura/allura/lib/plugin.py
index 77207a2..87e1e63 100644
--- a/Allura/allura/lib/plugin.py
+++ b/Allura/allura/lib/plugin.py
@@ -521,7 +521,7 @@ class ProjectRegistrationProvider(object):
if tool == 'wiki':
from forgewiki import model as WM
text = tool_config.get('home_text',
- '[[project_admins]]\n[[members]]\n[[download_button]]')
+ '[[members limit=20]]\n[[download_button]]')
WM.Page.query.get(app_config_id=app.config._id).text = text
if 'tool_order' in project_template:
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/69153ade/Allura/allura/tests/test_globals.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/test_globals.py b/Allura/allura/tests/test_globals.py
index 44c6850..1750bdc 100644
--- a/Allura/allura/tests/test_globals.py
+++ b/Allura/allura/tests/test_globals.py
@@ -149,16 +149,34 @@ def test_macros():
r = g.markdown_wiki.convert('[[neighborhood_blog_posts]]')
assert 'test content' in r
+@with_setup(teardown=setUp) # reset everything we changed
def test_macro_members():
- r = g.markdown_wiki.convert('[[members]]')
- assert_equal(r, u'<div class="markdown_content"><p><a href="/p/test/_members">Members</a><br /></p>\n</div>')
+ p_nbhd = M.Neighborhood.query.get(name='Projects')
+ p_test = M.Project.query.get(shortname='test', neighborhood_id=p_nbhd._id)
+ p_test.add_user(M.User.by_username('test-user'), ['Developer'])
+ p_test.add_user(M.User.by_username('test-user-0'), ['Member'])
+ ThreadLocalORMSession.flush_all()
+ r = g.markdown_wiki.convert('[[members limit=2]]')
+ assert_equal(r,
+ '<div class="markdown_content">'
+ '<h6>Project Members:</h6>'
+ '<div style="margin-left: 1.5em;">'
+ '<div style="margin-left: 0.5em; margin-bottom: 0.5em;">'
+ '<a href="/u/test-admin/">Test Admin</a> (admin)<br />'
+ '<a href="/u/test-user/">Test User</a><br />'
+ '</div>'
+ '<a href="/p/test/_members">All Members</a>'
+ '</div><div style="clear: both;"></div>\n'
+ '</div>')
+@with_setup(teardown=setUp) # reset everything we changed
def test_macro_project_admins():
user = M.User.by_username('test-admin')
user.display_name = u'Test Ådmin'
r = g.markdown_wiki.convert('[[project_admins]]')
- assert_equal(r, u'<div class="markdown_content"><h6>Project Admins:</h6><div class="grid-10"><a href="/u/test-admin/">Test Ådmin</a><br /></div><div style="clear: both;"></div>\n</div>')
+ assert_equal(r, u'<div class="markdown_content"><h6>Project Admins:</h6><div class="grid-10" style="margin-left: 2em;"><a href="/u/test-admin/">Test Ådmin</a><br /></div><div style="clear: both;"></div>\n</div>')
+@with_setup(teardown=setUp) # reset everything we changed
def test_macro_project_admins_one_br():
p_nbhd = M.Neighborhood.query.get(name='Projects')
p_test = M.Project.query.get(shortname='test', neighborhood_id=p_nbhd._id)
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/69153ade/ForgeWiki/forgewiki/wiki_main.py
----------------------------------------------------------------------
diff --git a/ForgeWiki/forgewiki/wiki_main.py b/ForgeWiki/forgewiki/wiki_main.py
index ce253fb..b62762d 100644
--- a/ForgeWiki/forgewiki/wiki_main.py
+++ b/ForgeWiki/forgewiki/wiki_main.py
@@ -246,8 +246,7 @@ This is the default page, edit it as you see fit. To add a new page simply refer
The wiki uses [Markdown](%s) syntax.
-[[project_admins]]
-[[members]]
+[[members limit=20]]
[[download_button]]
""" % url
p.commit()