You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by br...@apache.org on 2012/10/15 23:33:18 UTC
git commit: [#4990] ticket:181 fixed count labels error, added tests
Updated Branches:
refs/heads/master ba8af5cec -> 9a021b495
[#4990] ticket:181 fixed count labels error, added 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/9a021b49
Tree: http://git-wip-us.apache.org/repos/asf/incubator-allura/tree/9a021b49
Diff: http://git-wip-us.apache.org/repos/asf/incubator-allura/diff/9a021b49
Branch: refs/heads/master
Commit: 9a021b4959e88ba494127bc738e0f3bba7a7f02e
Parents: ba8af5c
Author: Yuriy Arhipov <yu...@yandex.ru>
Authored: Mon Oct 1 01:28:00 2012 +0400
Committer: Dave Brondsema <db...@geek.net>
Committed: Mon Oct 15 21:32:47 2012 +0000
----------------------------------------------------------------------
.../forgewiki/templates/wiki/browse_tags.html | 2 +-
ForgeWiki/forgewiki/tests/functional/test_root.py | 22 +++++++++++++++
ForgeWiki/forgewiki/wiki_main.py | 19 +++++++++----
3 files changed, 36 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/9a021b49/ForgeWiki/forgewiki/templates/wiki/browse_tags.html
----------------------------------------------------------------------
diff --git a/ForgeWiki/forgewiki/templates/wiki/browse_tags.html b/ForgeWiki/forgewiki/templates/wiki/browse_tags.html
index 8f8c23a..76532f5 100644
--- a/ForgeWiki/forgewiki/templates/wiki/browse_tags.html
+++ b/ForgeWiki/forgewiki/templates/wiki/browse_tags.html
@@ -15,7 +15,7 @@
</thead>
<tbody>
{% set i = 0 %}
- {% for label in labels %}
+ {% for label in name_labels %}
<tr class="{{i%2 and 'even' or ''}}">
<td>{{label}}</td>
<td>
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/9a021b49/ForgeWiki/forgewiki/tests/functional/test_root.py
----------------------------------------------------------------------
diff --git a/ForgeWiki/forgewiki/tests/functional/test_root.py b/ForgeWiki/forgewiki/tests/functional/test_root.py
index fa11a89..3375b6d 100644
--- a/ForgeWiki/forgewiki/tests/functional/test_root.py
+++ b/ForgeWiki/forgewiki/tests/functional/test_root.py
@@ -248,6 +248,28 @@ class TestRootController(TestController):
'viewable_by-0.id':'all'})
assert 'tést' in response
+ def test_page_label_count(self):
+ labels = "label"
+ for i in range(1, 100):
+ labels += ',label%s' % i
+ self.app.post(
+ '/wiki/tést/update',
+ params={
+ 'title': 'tést',
+ 'text': 'sometext',
+ 'labels': labels,
+ 'labels_old': labels,
+ 'viewable_by-0.id': 'all'})
+ r = self.app.get('/wiki/browse_tags/')
+ assert 'results of 100 ' in r
+ assert '<div class="page_list">' in r
+ assert '(Page 1 of 4)' in r
+ assert '<td>label30</td>' in r
+ assert '<td>label1</td>' in r
+ r = self.app.get('/wiki/browse_tags/?page=3')
+ assert '<td>label77</td>' in r
+ assert '<td>label99</td>' in r
+
def test_new_attachment(self):
self.app.post(
'/wiki/tést/update',
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/9a021b49/ForgeWiki/forgewiki/wiki_main.py
----------------------------------------------------------------------
diff --git a/ForgeWiki/forgewiki/wiki_main.py b/ForgeWiki/forgewiki/wiki_main.py
index ab56690..3528dd8 100644
--- a/ForgeWiki/forgewiki/wiki_main.py
+++ b/ForgeWiki/forgewiki/wiki_main.py
@@ -353,24 +353,31 @@ class RootController(BaseController, DispatchIndex):
@expose('jinja:forgewiki:templates/wiki/browse_tags.html')
@validate(dict(sort=validators.UnicodeString(if_empty='alpha'),
page=validators.Int(if_empty=0),
- limit=validators.Int(if_empty=None)))
- def browse_tags(self, sort='alpha', page=0, limit=None):
+ limit=validators.Int(if_empty=25)))
+ def browse_tags(self, sort='alpha', page=0, limit=None, **kw):
'list of all labels in the wiki'
c.page_list = W.page_list
c.page_size = W.page_size
limit, pagenum, start = g.handle_paging(limit, page, default=25)
count = 0
page_tags = {}
- q = WM.Page.query.find(dict(app_config_id=c.app.config._id, deleted=False))
- count = q.count()
- q = q.skip(start).limit(int(limit))
+ q = WM.Page.query.find(dict(app_config_id=c.app.config._id,
+ deleted=False,
+ labels={'$ne': []}))
for page in q:
if page.labels:
for label in page.labels:
if label not in page_tags:
page_tags[label] = []
page_tags[label].append(page)
- return dict(labels=page_tags, limit=limit, count=count, page=pagenum)
+ count = len(page_tags)
+ name_labels = list(page_tags)
+ name_labels.sort()
+ return dict(labels=page_tags,
+ limit=limit,
+ count=count,
+ page=pagenum,
+ name_labels=name_labels[start:start + limit])
@with_trailing_slash
@expose('jinja:allura:templates/markdown_syntax.html')