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()