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 2016/01/06 20:30:20 UTC
[1/8] allura git commit: [#8020] ticket:874 added filter to
discussion moderation; added test for filtering
Repository: allura
Updated Branches:
refs/heads/db/8020 [created] 1159ede46
[#8020] ticket:874 added filter to discussion moderation; added test for filtering
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/4479c27a
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/4479c27a
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/4479c27a
Branch: refs/heads/db/8020
Commit: 4479c27ac9a556503270967c131526371ba7368e
Parents: dfa249a
Author: DeV1doR <de...@ukr.net>
Authored: Wed Dec 9 20:27:29 2015 +0200
Committer: Dave Brondsema <da...@brondsema.net>
Committed: Wed Jan 6 12:51:40 2016 -0500
----------------------------------------------------------------------
Allura/allura/controllers/discuss.py | 7 +++++-
Allura/allura/lib/widgets/discuss.py | 2 ++
.../allura/templates/discussion/moderate.html | 2 +-
.../tests/functional/test_forum.py | 25 ++++++++++++++++++++
4 files changed, 34 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/4479c27a/Allura/allura/controllers/discuss.py
----------------------------------------------------------------------
diff --git a/Allura/allura/controllers/discuss.py b/Allura/allura/controllers/discuss.py
index 4c0c748..13f3921 100644
--- a/Allura/allura/controllers/discuss.py
+++ b/Allura/allura/controllers/discuss.py
@@ -35,6 +35,7 @@ from allura.lib.decorators import require_post
from allura.lib.security import require_access
from allura.lib.widgets import discuss as DW
+from allura.model.auth import User
from .attachments import AttachmentsController, AttachmentController
from .feed import FeedArgs, FeedController
@@ -428,6 +429,7 @@ class ModerationController(BaseController):
page = kw.pop('page', 0)
limit = kw.pop('limit', 50)
status = kw.pop('status', 'pending')
+ username = kw.pop('username', None)
flag = kw.pop('flag', None)
c.post_filter = WidgetConfig.post_filter
c.moderate_posts = WidgetConfig.moderate_posts
@@ -438,6 +440,9 @@ class ModerationController(BaseController):
query['status'] = status
if flag:
query['flags'] = {'$gte': int(flag)}
+ if username:
+ filtered_user = User.query.get(username=username)
+ query['author_id'] = getattr(filtered_user, '_id', None)
q = self.PostModel.query.find(query)
count = q.count()
limit, page, start = g.handle_paging(limit, page or 0, default=50)
@@ -447,7 +452,7 @@ class ModerationController(BaseController):
pages = (count // limit) + 1
return dict(discussion=self.discussion,
posts=q, page=page, limit=limit,
- status=status, flag=flag,
+ status=status, flag=flag, username=username,
pgnum=pgnum, pages=pages)
@h.vardec
http://git-wip-us.apache.org/repos/asf/allura/blob/4479c27a/Allura/allura/lib/widgets/discuss.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/widgets/discuss.py b/Allura/allura/lib/widgets/discuss.py
index 1e3d632..62adb16 100644
--- a/Allura/allura/lib/widgets/discuss.py
+++ b/Allura/allura/lib/widgets/discuss.py
@@ -123,6 +123,8 @@ class PostFilter(ff.ForgeForm):
label='Show posts with at least "n" flags',
css_class='text',
if_missing=0),
+ ew.InputField(name='username',
+ label='Show post filtered by (username)'),
ew.SubmitButton(label='Filter Posts')
])
]
http://git-wip-us.apache.org/repos/asf/allura/blob/4479c27a/Allura/allura/templates/discussion/moderate.html
----------------------------------------------------------------------
diff --git a/Allura/allura/templates/discussion/moderate.html b/Allura/allura/templates/discussion/moderate.html
index b5f2e22..81f0c18 100644
--- a/Allura/allura/templates/discussion/moderate.html
+++ b/Allura/allura/templates/discussion/moderate.html
@@ -34,6 +34,6 @@ Moderation Queue
<a href="?status={{status}}&flag={{flag}}&page={{page-limit}}">Previous Page</a>
<a href="?status={{status}}&flag={{flag}}&page={{page+limit}}">Next Page</a>
</div>
-{{c.post_filter.display(action=discussion.url()+'moderate', value=dict(status=status, flag=flag))}}
+{{c.post_filter.display(action=discussion.url()+'moderate', value=dict(status=status, flag=flag, username=username))}}
{{c.moderate_posts.display(value=dict(posts=posts), action=discussion.url()+'moderate/save_moderation')}}
{% endblock %}
http://git-wip-us.apache.org/repos/asf/allura/blob/4479c27a/ForgeDiscussion/forgediscussion/tests/functional/test_forum.py
----------------------------------------------------------------------
diff --git a/ForgeDiscussion/forgediscussion/tests/functional/test_forum.py b/ForgeDiscussion/forgediscussion/tests/functional/test_forum.py
index 7385357..a91b0c4 100644
--- a/ForgeDiscussion/forgediscussion/tests/functional/test_forum.py
+++ b/ForgeDiscussion/forgediscussion/tests/functional/test_forum.py
@@ -408,6 +408,31 @@ class TestForum(TestController):
'delete': 'Delete Marked'})
_check()
+ def test_user_filter(self):
+ username = 'test_username1'
+ r = self.app.get(
+ '/discussion/testforum/moderate?username=%s' % username)
+ input_field = r.html.fieldset.find('input', {'value': username})
+ assert input_field is not None
+
+ username = 341
+ r = self.app.get(
+ '/discussion/testforum/moderate?username=%s' % username)
+ input_field = r.html.fieldset.find('input', {'value': username})
+ assert input_field is not None
+
+ username = 123.43523
+ r = self.app.get(
+ '/discussion/testforum/moderate?username=%s' % username)
+ input_field = r.html.fieldset.find('input', {'value': username})
+ assert input_field is not None
+
+ username = None
+ r = self.app.get(
+ '/discussion/testforum/moderate?username=%s' % username)
+ input_field = r.html.fieldset.find('input', {'value': username})
+ assert input_field is None
+
def test_posting(self):
r = self.app.get('/discussion/create_topic/')
f = r.html.find('form', {'action': '/p/test/discussion/save_new_topic'})
[5/8] allura git commit: [#8020] ticket:875 Replace hardcoded link to
moderatation page
Posted by br...@apache.org.
[#8020] ticket:875 Replace hardcoded link to moderatation page
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/b6dc95bb
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/b6dc95bb
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/b6dc95bb
Branch: refs/heads/db/8020
Commit: b6dc95bbe26269aeb9dc1bdc29a4774952e0b194
Parents: 1aebc64
Author: Igor Bondarenko <je...@gmail.com>
Authored: Thu Dec 24 14:44:50 2015 +0200
Committer: Dave Brondsema <da...@brondsema.net>
Committed: Wed Jan 6 12:51:41 2016 -0500
----------------------------------------------------------------------
Allura/allura/templates/widgets/post_widget.html | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/b6dc95bb/Allura/allura/templates/widgets/post_widget.html
----------------------------------------------------------------------
diff --git a/Allura/allura/templates/widgets/post_widget.html b/Allura/allura/templates/widgets/post_widget.html
index 4d388ee..8c614d4 100644
--- a/Allura/allura/templates/widgets/post_widget.html
+++ b/Allura/allura/templates/widgets/post_widget.html
@@ -39,7 +39,8 @@
{{lib.csrf_token()}}
</form>
<br>
- <span class="spam-text">You can see all pending comments posted by this user </span><a href="/p/test/tickets/_discuss/moderate?username={{value.author().username}}&status=pending">here</a>
+ <span class="spam-text">You can see all pending comments posted by this user </span>
+ <a href="{{value.thread.discussion.url()}}moderate?username={{value.author().username}}&status=pending">here</a>
</div>
{% endif %}
<div class="row">
[6/8] allura git commit: [#8020] ticket:875 updated jquery for render;
updated logic with undo; updated test
Posted by br...@apache.org.
[#8020] ticket:875 updated jquery for render; updated logic with undo; updated test
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/d11146fc
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/d11146fc
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/d11146fc
Branch: refs/heads/db/8020
Commit: d11146fc9c860ef93e06e73570f2fb9d657ef37b
Parents: 83458a4
Author: DeV1doR <de...@ukr.net>
Authored: Sat Dec 12 17:18:08 2015 +0200
Committer: Dave Brondsema <da...@brondsema.net>
Committed: Wed Jan 6 12:51:41 2016 -0500
----------------------------------------------------------------------
Allura/allura/controllers/discuss.py | 4 +++-
Allura/allura/lib/widgets/discuss.py | 24 ++++++++++++++++----
.../allura/templates/widgets/post_widget.html | 1 +
Allura/allura/tests/functional/test_discuss.py | 9 +++++++-
4 files changed, 31 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/d11146fc/Allura/allura/controllers/discuss.py
----------------------------------------------------------------------
diff --git a/Allura/allura/controllers/discuss.py b/Allura/allura/controllers/discuss.py
index add5ef3..40320ee 100644
--- a/Allura/allura/controllers/discuss.py
+++ b/Allura/allura/controllers/discuss.py
@@ -356,7 +356,9 @@ class PostController(BaseController):
elif kw.pop('spam', None):
self.post.spam()
elif kw.pop('undo', None):
- self.post.status = 'pending'
+ prev_status = kw.pop('prev_status', None)
+ if prev_status:
+ self.post.status = prev_status
elif kw.pop('approve', None):
if self.post.status != 'ok':
self.post.approve()
http://git-wip-us.apache.org/repos/asf/allura/blob/d11146fc/Allura/allura/lib/widgets/discuss.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/widgets/discuss.py b/Allura/allura/lib/widgets/discuss.py
index 2d4dfea..ac4722d 100644
--- a/Allura/allura/lib/widgets/discuss.py
+++ b/Allura/allura/lib/widgets/discuss.py
@@ -342,23 +342,37 @@ class Post(HierWidget):
}
else if (mod == 'Spam'){
spam_block_display($(post), 'none');
- $(post).find('.spam-present').show();
}
else if (mod == 'Undo'){
spam_block_display($(post), 'block');
- $(post).find('.spam-present').hide();
- $(post).find('.options a').eq(0).hide();
}
}
});
});
function spam_block_display($post, display_type) {
- $post.find('.display_post').css(
- 'display', display_type);
+ var post_block = $post.find('.display_post');
+ post_block.css('display', display_type);
+
+ var attach_block = $post.find('.add_attachment_form').next();
+ if (attach_block.attr('class') == undefined) {
+ attach_block.css('display', display_type);
+ }
+
$.each($post.find('.options').children(), function() {
$(this).css('display', display_type);
+ if (
+ $(this).hasClass('reply_post') &&
+ $post.find('input[name="prev_status"]').attr('value') == 'pending'
+ ) {
+ $(this).hide();
+ }
});
+ if (display_type == 'none') {
+ $post.find('.spam-present').show();
+ } else {
+ $post.find('.spam-present').hide();
+ }
}
function get_cm($elem) { return $('.CodeMirror', $elem)[0].CodeMirror; }
http://git-wip-us.apache.org/repos/asf/allura/blob/d11146fc/Allura/allura/templates/widgets/post_widget.html
----------------------------------------------------------------------
diff --git a/Allura/allura/templates/widgets/post_widget.html b/Allura/allura/templates/widgets/post_widget.html
index 2695c2b..6b8622d 100644
--- a/Allura/allura/templates/widgets/post_widget.html
+++ b/Allura/allura/templates/widgets/post_widget.html
@@ -49,6 +49,7 @@
{% if h.has_access(value, 'moderate')() %}
<form method="POST" action="{{value.url()+'moderate'}}">
<input type="hidden" name="undo" value="True"/>
+ <input type="hidden" name="prev_status" value="{{value.status}}">
<a href="" class="moderate_post little_link"><span>Undo</span></a>
{{lib.csrf_token()}}
</form>
http://git-wip-us.apache.org/repos/asf/allura/blob/d11146fc/Allura/allura/tests/functional/test_discuss.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/functional/test_discuss.py b/Allura/allura/tests/functional/test_discuss.py
index 47218c8..719e57a 100644
--- a/Allura/allura/tests/functional/test_discuss.py
+++ b/Allura/allura/tests/functional/test_discuss.py
@@ -212,10 +212,17 @@ class TestDiscuss(TestDiscussBase):
r = self._make_post('Test post')
post_link = str(
r.html.find('div', {'class': 'edit_post_form reply'}).find('form')['action'])
- self.app.post(post_link + 'moderate', params=dict(undo='undo'))
+
+ self.app.post(post_link + 'moderate', params=dict(
+ undo='undo', prev_status='pending'))
post = M.Post.query.find().first()
assert post.status == 'pending'
+ self.app.post(post_link + 'moderate', params=dict(
+ undo='undo', prev_status='ok'))
+ post = M.Post.query.find().first()
+ assert post.status == 'ok'
+
@patch.object(M.Thread, 'is_spam')
def test_feed_does_not_include_comments_held_for_moderation(self, is_spam):
is_spam.return_value = True
[4/8] allura git commit: [#8020] ticket:875 added test for undo;
added text when spam clicking occured at ticket post page
Posted by br...@apache.org.
[#8020] ticket:875 added test for undo; added text when spam clicking occured at ticket post page
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/7dc7af46
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/7dc7af46
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/7dc7af46
Branch: refs/heads/db/8020
Commit: 7dc7af4606192f6499d95b286c5a23964b315dff
Parents: c5fa6b7
Author: DeV1doR <de...@ukr.net>
Authored: Fri Dec 11 13:56:05 2015 +0200
Committer: Dave Brondsema <da...@brondsema.net>
Committed: Wed Jan 6 12:51:41 2016 -0500
----------------------------------------------------------------------
Allura/allura/controllers/discuss.py | 2 ++
Allura/allura/lib/widgets/discuss.py | 15 ++++++++++++++-
Allura/allura/nf/allura/css/site_style.css | 6 ++++++
Allura/allura/templates/widgets/post_widget.html | 12 +++++++++++-
Allura/allura/tests/functional/test_discuss.py | 8 ++++++++
5 files changed, 41 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/7dc7af46/Allura/allura/controllers/discuss.py
----------------------------------------------------------------------
diff --git a/Allura/allura/controllers/discuss.py b/Allura/allura/controllers/discuss.py
index 818cc10..add5ef3 100644
--- a/Allura/allura/controllers/discuss.py
+++ b/Allura/allura/controllers/discuss.py
@@ -355,6 +355,8 @@ class PostController(BaseController):
self.post.delete()
elif kw.pop('spam', None):
self.post.spam()
+ elif kw.pop('undo', None):
+ self.post.status = 'pending'
elif kw.pop('approve', None):
if self.post.status != 'ok':
self.post.approve()
http://git-wip-us.apache.org/repos/asf/allura/blob/7dc7af46/Allura/allura/lib/widgets/discuss.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/widgets/discuss.py b/Allura/allura/lib/widgets/discuss.py
index 94310e2..5badc98 100644
--- a/Allura/allura/lib/widgets/discuss.py
+++ b/Allura/allura/lib/widgets/discuss.py
@@ -341,12 +341,25 @@ class Post(HierWidget):
$('div.moderate', post).removeClass('moderate');
}
else if (mod == 'Spam'){
- $(post).remove();
+ spam_block_display($(post), 'none');
+ $(post).find('.spam-present').show();
+ }
+ else if (mod == 'Undo'){
+ spam_block_display($(post), 'block');
+ $(post).find('.spam-present').hide();
}
}
});
});
+ function spam_block_display($post, display_type) {
+ $post.find('.display_post').css(
+ 'display', display_type);
+ $.each($post.find('.options').children(), function() {
+ $(this).css('display', display_type);
+ });
+ }
+
function get_cm($elem) { return $('.CodeMirror', $elem)[0].CodeMirror; }
if($('a.edit_post', post)){
http://git-wip-us.apache.org/repos/asf/allura/blob/7dc7af46/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 7367432..76606af 100644
--- a/Allura/allura/nf/allura/css/site_style.css
+++ b/Allura/allura/nf/allura/css/site_style.css
@@ -3422,3 +3422,9 @@ fieldset.preferences legend {
.ui-autocomplete {
z-index: 10; /* so autocomplete of tags or username is always over markdown editor components */
}
+.spam-present {
+ display: none;
+}
+.spam-text {
+ float: left;
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/allura/blob/7dc7af46/Allura/allura/templates/widgets/post_widget.html
----------------------------------------------------------------------
diff --git a/Allura/allura/templates/widgets/post_widget.html b/Allura/allura/templates/widgets/post_widget.html
index 096e829..a8aa822 100644
--- a/Allura/allura/templates/widgets/post_widget.html
+++ b/Allura/allura/templates/widgets/post_widget.html
@@ -43,7 +43,17 @@
</div>
{% set pending = value.status == 'pending' %}
{% set moderator = h.has_access(value, 'moderator')() %}
- <div class="grid-14" style="width: {{indent == 0 and 525 or (indent <= 40 and 515-indent*10 or 65)}}px">
+ <div class="grid-14 post-content" style="width: {{indent == 0 and 525 or (indent <= 40 and 515-indent*10 or 65)}}px">
+ <div class="spam-present">
+ <span class="spam-text">Comment has been marked as spam. </span>
+ <form method="POST" action="{{value.url()+'moderate'}}">
+ <input type="hidden" name="undo" value="True"/>
+ <a href="" class="moderate_post little_link"><span>Undo</span></a>
+ {{lib.csrf_token()}}
+ </form>
+ <br>
+ <span class="spam-text">You can see all comments posted by this user </span><a href="/p/test/tickets/_discuss/moderate">here</a>
+ </div>
<div class="display_post{% if pending and moderator %} moderate{% endif %}">
{% if pending and not moderator %}
<b>Post awaiting moderation.</b>
http://git-wip-us.apache.org/repos/asf/allura/blob/7dc7af46/Allura/allura/tests/functional/test_discuss.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/functional/test_discuss.py b/Allura/allura/tests/functional/test_discuss.py
index d70664b..47218c8 100644
--- a/Allura/allura/tests/functional/test_discuss.py
+++ b/Allura/allura/tests/functional/test_discuss.py
@@ -208,6 +208,14 @@ class TestDiscuss(TestDiscussBase):
))
assert r_bad_filtered.html.tbody.findAll('tr') == []
+ def test_undo(self):
+ r = self._make_post('Test post')
+ post_link = str(
+ r.html.find('div', {'class': 'edit_post_form reply'}).find('form')['action'])
+ self.app.post(post_link + 'moderate', params=dict(undo='undo'))
+ post = M.Post.query.find().first()
+ assert post.status == 'pending'
+
@patch.object(M.Thread, 'is_spam')
def test_feed_does_not_include_comments_held_for_moderation(self, is_spam):
is_spam.return_value = True
[2/8] allura git commit: [#8020] ticket:875 updated rendering of spam
block; changed notification text and redirect here link
Posted by br...@apache.org.
[#8020] ticket:875 updated rendering of spam block; changed notification text and redirect here link
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/1aebc645
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/1aebc645
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/1aebc645
Branch: refs/heads/db/8020
Commit: 1aebc645feca28ca8ed7686cd561adca59e93d4d
Parents: d11146f
Author: DeV1doR <de...@ukr.net>
Authored: Mon Dec 21 18:15:56 2015 +0200
Committer: Dave Brondsema <da...@brondsema.net>
Committed: Wed Jan 6 12:51:41 2016 -0500
----------------------------------------------------------------------
Allura/allura/lib/widgets/discuss.py | 34 +++++++-------------
Allura/allura/nf/allura/css/site_style.css | 1 +
.../allura/templates/widgets/post_widget.html | 26 +++++++--------
3 files changed, 25 insertions(+), 36 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/1aebc645/Allura/allura/lib/widgets/discuss.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/widgets/discuss.py b/Allura/allura/lib/widgets/discuss.py
index ac4722d..52e9c32 100644
--- a/Allura/allura/lib/widgets/discuss.py
+++ b/Allura/allura/lib/widgets/discuss.py
@@ -341,37 +341,25 @@ class Post(HierWidget):
$('div.moderate', post).removeClass('moderate');
}
else if (mod == 'Spam'){
- spam_block_display($(post), 'none');
+ spam_block_display($(post), 'show_spam');
}
else if (mod == 'Undo'){
- spam_block_display($(post), 'block');
+ spam_block_display($(post), 'hide_spam');
}
}
});
});
function spam_block_display($post, display_type) {
- var post_block = $post.find('.display_post');
- post_block.css('display', display_type);
-
- var attach_block = $post.find('.add_attachment_form').next();
- if (attach_block.attr('class') == undefined) {
- attach_block.css('display', display_type);
- }
-
- $.each($post.find('.options').children(), function() {
- $(this).css('display', display_type);
- if (
- $(this).hasClass('reply_post') &&
- $post.find('input[name="prev_status"]').attr('value') == 'pending'
- ) {
- $(this).hide();
- }
- });
- if (display_type == 'none') {
- $post.find('.spam-present').show();
- } else {
- $post.find('.spam-present').hide();
+ var spam_block = $post.find('.info.grid-15.spam-present');
+ var row = $post.find('.row').eq(0);
+
+ if (display_type == 'show_spam') {
+ spam_block.show();
+ row.hide();
+ } else if (display_type == 'hide_spam') {
+ spam_block.hide();
+ row.show();
}
}
http://git-wip-us.apache.org/repos/asf/allura/blob/1aebc645/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 76606af..0e60c81 100644
--- a/Allura/allura/nf/allura/css/site_style.css
+++ b/Allura/allura/nf/allura/css/site_style.css
@@ -3424,6 +3424,7 @@ fieldset.preferences legend {
}
.spam-present {
display: none;
+ margin-left: 75px;
}
.spam-text {
float: left;
http://git-wip-us.apache.org/repos/asf/allura/blob/1aebc645/Allura/allura/templates/widgets/post_widget.html
----------------------------------------------------------------------
diff --git a/Allura/allura/templates/widgets/post_widget.html b/Allura/allura/templates/widgets/post_widget.html
index 6b8622d..4d388ee 100644
--- a/Allura/allura/templates/widgets/post_widget.html
+++ b/Allura/allura/templates/widgets/post_widget.html
@@ -29,6 +29,19 @@
<div>
<div id="{{value.slug}}" class="discussion-post">
+ {% if h.has_access(value, 'moderate')() %}
+ <div class="info grid-15 spam-present">
+ <span class="spam-text">Comment has been marked as spam. </span>
+ <form method="POST" action="{{value.url()+'moderate'}}">
+ <input type="hidden" name="undo" value="True"/>
+ <input type="hidden" name="prev_status" value="{{value.status}}">
+ <a href="" class="moderate_post little_link"><span>Undo</span></a>
+ {{lib.csrf_token()}}
+ </form>
+ <br>
+ <span class="spam-text">You can see all pending comments posted by this user </span><a href="/p/test/tickets/_discuss/moderate?username={{value.author().username}}&status=pending">here</a>
+ </div>
+ {% endif %}
<div class="row">
<div class="grid-2 tcenter gravatar">
<p class="gravatar">
@@ -44,19 +57,6 @@
{% set pending = value.status == 'pending' %}
{% set moderator = h.has_access(value, 'moderator')() %}
<div class="grid-14 post-content" style="width: {{indent == 0 and 525 or (indent <= 40 and 515-indent*10 or 65)}}px">
- <div class="spam-present">
- <span class="spam-text">Comment has been marked as spam. </span>
- {% if h.has_access(value, 'moderate')() %}
- <form method="POST" action="{{value.url()+'moderate'}}">
- <input type="hidden" name="undo" value="True"/>
- <input type="hidden" name="prev_status" value="{{value.status}}">
- <a href="" class="moderate_post little_link"><span>Undo</span></a>
- {{lib.csrf_token()}}
- </form>
- {% endif %}
- <br>
- <span class="spam-text">You can see all comments posted by this user </span><a href="/p/test/tickets/_discuss/moderate?username={{value.author().username}}&status=spam">here</a>
- </div>
<div class="display_post{% if pending and moderator %} moderate{% endif %}">
{% if pending and not moderator %}
<b>Post awaiting moderation.</b>
[3/8] allura git commit: [#8020] ticket:874 added tests for moderation
Posted by br...@apache.org.
[#8020] ticket:874 added tests for moderation
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/c5fa6b7a
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/c5fa6b7a
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/c5fa6b7a
Branch: refs/heads/db/8020
Commit: c5fa6b7a7dcecc1cdf6d7cf4a1cc7820327a5619
Parents: 4479c27
Author: DeV1doR <de...@ukr.net>
Authored: Thu Dec 10 19:22:04 2015 +0200
Committer: Dave Brondsema <da...@brondsema.net>
Committed: Wed Jan 6 12:51:41 2016 -0500
----------------------------------------------------------------------
Allura/allura/controllers/discuss.py | 4 +--
Allura/allura/lib/widgets/discuss.py | 2 +-
Allura/allura/tests/functional/test_discuss.py | 36 ++++++++++++++++++++
.../tests/functional/test_forum.py | 12 -------
4 files changed, 39 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/c5fa6b7a/Allura/allura/controllers/discuss.py
----------------------------------------------------------------------
diff --git a/Allura/allura/controllers/discuss.py b/Allura/allura/controllers/discuss.py
index 13f3921..818cc10 100644
--- a/Allura/allura/controllers/discuss.py
+++ b/Allura/allura/controllers/discuss.py
@@ -441,8 +441,8 @@ class ModerationController(BaseController):
if flag:
query['flags'] = {'$gte': int(flag)}
if username:
- filtered_user = User.query.get(username=username)
- query['author_id'] = getattr(filtered_user, '_id', None)
+ filtered_user = User.by_username(username)
+ query['author_id'] = filtered_user._id if filtered_user else None
q = self.PostModel.query.find(query)
count = q.count()
limit, page, start = g.handle_paging(limit, page or 0, default=50)
http://git-wip-us.apache.org/repos/asf/allura/blob/c5fa6b7a/Allura/allura/lib/widgets/discuss.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/widgets/discuss.py b/Allura/allura/lib/widgets/discuss.py
index 62adb16..94310e2 100644
--- a/Allura/allura/lib/widgets/discuss.py
+++ b/Allura/allura/lib/widgets/discuss.py
@@ -124,7 +124,7 @@ class PostFilter(ff.ForgeForm):
css_class='text',
if_missing=0),
ew.InputField(name='username',
- label='Show post filtered by (username)'),
+ label='Show post filtered by username'),
ew.SubmitButton(label='Filter Posts')
])
]
http://git-wip-us.apache.org/repos/asf/allura/blob/c5fa6b7a/Allura/allura/tests/functional/test_discuss.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/functional/test_discuss.py b/Allura/allura/tests/functional/test_discuss.py
index fb8a08b..d70664b 100644
--- a/Allura/allura/tests/functional/test_discuss.py
+++ b/Allura/allura/tests/functional/test_discuss.py
@@ -172,6 +172,42 @@ class TestDiscuss(TestDiscussBase):
assert M.Post.query.find().count() == 1
assert M.Post.query.find({'deleted': False}).count() == 0
+ def test_user_filter(self):
+ r = self._make_post('Test post')
+ post_link = str(
+ r.html.find('div', {'class': 'edit_post_form reply'}).find('form')['action'])
+ self.app.post(post_link + 'moderate', params=dict(spam='spam'))
+ post = M.Post.query.find().first()
+ post_username = post.author().username
+ moderate_link = '/p/test/wiki/_discuss/moderate'
+
+ # no filter
+ r_no_filtered = self.app.get(
+ moderate_link,
+ params=dict(
+ status=post.status
+ ))
+ assert r_no_filtered.html.tbody.findAll('tr') != []
+
+ # filter with existing user
+ r_filtered = self.app.get(
+ moderate_link,
+ params=dict(
+ username=post_username,
+ status=post.status
+ ))
+ assert r_filtered.html.tbody.findAll('tr') != []
+ assert post_username in r_filtered.html.tbody.findAll('td')[-5].string
+
+ # filter without existing user
+ r_bad_filtered = self.app.get(
+ moderate_link,
+ params=dict(
+ username='bad_filtered_user',
+ status=post.status
+ ))
+ assert r_bad_filtered.html.tbody.findAll('tr') == []
+
@patch.object(M.Thread, 'is_spam')
def test_feed_does_not_include_comments_held_for_moderation(self, is_spam):
is_spam.return_value = True
http://git-wip-us.apache.org/repos/asf/allura/blob/c5fa6b7a/ForgeDiscussion/forgediscussion/tests/functional/test_forum.py
----------------------------------------------------------------------
diff --git a/ForgeDiscussion/forgediscussion/tests/functional/test_forum.py b/ForgeDiscussion/forgediscussion/tests/functional/test_forum.py
index a91b0c4..2e3ddaa 100644
--- a/ForgeDiscussion/forgediscussion/tests/functional/test_forum.py
+++ b/ForgeDiscussion/forgediscussion/tests/functional/test_forum.py
@@ -415,18 +415,6 @@ class TestForum(TestController):
input_field = r.html.fieldset.find('input', {'value': username})
assert input_field is not None
- username = 341
- r = self.app.get(
- '/discussion/testforum/moderate?username=%s' % username)
- input_field = r.html.fieldset.find('input', {'value': username})
- assert input_field is not None
-
- username = 123.43523
- r = self.app.get(
- '/discussion/testforum/moderate?username=%s' % username)
- input_field = r.html.fieldset.find('input', {'value': username})
- assert input_field is not None
-
username = None
r = self.app.get(
'/discussion/testforum/moderate?username=%s' % username)
[8/8] allura git commit: [#8020] remove dead 'flag' code (long long
ago non-moderators could help flag things as spam). This is separate from the
moderator's flag as spam option, and from thread-level flags (e.g. sticky)
Posted by br...@apache.org.
[#8020] remove dead 'flag' code (long long ago non-moderators could help flag things as spam). This is separate from the moderator's flag as spam option, and from thread-level flags (e.g. sticky)
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/1159ede4
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/1159ede4
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/1159ede4
Branch: refs/heads/db/8020
Commit: 1159ede4601f309e246d81220f3906708d2181c3
Parents: b6dc95b
Author: Dave Brondsema <da...@brondsema.net>
Authored: Wed Jan 6 13:28:58 2016 -0500
Committer: Dave Brondsema <da...@brondsema.net>
Committed: Wed Jan 6 13:28:58 2016 -0500
----------------------------------------------------------------------
Allura/allura/controllers/discuss.py | 12 ----------
Allura/allura/lib/widgets/discuss.py | 15 ------------
Allura/allura/model/discuss.py | 3 ---
Allura/allura/templates/widgets/flag_post.html | 24 --------------------
.../templates/widgets/moderate_posts.html | 2 --
Allura/docs/api-rest/examples/discussion.json | 2 --
Allura/docs/api-rest/schemas/discussion.json | 4 ----
.../forgediscussion/controllers/forum.py | 1 -
8 files changed, 63 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/1159ede4/Allura/allura/controllers/discuss.py
----------------------------------------------------------------------
diff --git a/Allura/allura/controllers/discuss.py b/Allura/allura/controllers/discuss.py
index 40320ee..41a8cf1 100644
--- a/Allura/allura/controllers/discuss.py
+++ b/Allura/allura/controllers/discuss.py
@@ -62,7 +62,6 @@ class WidgetConfig(object):
edit_post = DW.EditPost()
moderate_thread = DW.ModerateThread()
moderate_post = DW.ModeratePost()
- flag_post = DW.FlagPost()
post_filter = DW.PostFilter()
moderate_posts = DW.ModeratePosts()
# Other widgets
@@ -371,17 +370,6 @@ class PostController(BaseController):
@h.vardec
@expose()
@require_post()
- @validate(pass_validator, error_handler=error_handler)
- def flag(self, **kw):
- self.W.flag_post.to_python(kw, None)
- if c.user._id not in self.post.flagged_by:
- self.post.flagged_by.append(c.user._id)
- self.post.flags += 1
- redirect(request.referer)
-
- @h.vardec
- @expose()
- @require_post()
def attach(self, file_info=None):
require_access(self.post, 'moderate')
self.post.add_multiple_attachments(file_info)
http://git-wip-us.apache.org/repos/asf/allura/blob/1159ede4/Allura/allura/lib/widgets/discuss.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/widgets/discuss.py b/Allura/allura/lib/widgets/discuss.py
index 52e9c32..bb230dd 100644
--- a/Allura/allura/lib/widgets/discuss.py
+++ b/Allura/allura/lib/widgets/discuss.py
@@ -54,13 +54,6 @@ class ModeratePost(ew.SimpleForm):
submit_text=None)
-class FlagPost(ew.SimpleForm):
- template = 'jinja:allura:templates/widgets/flag_post.html'
- defaults = dict(
- ew.SimpleForm.defaults,
- submit_text=None)
-
-
class AttachPost(ff.ForgeForm):
defaults = dict(
ff.ForgeForm.defaults,
@@ -119,10 +112,6 @@ class PostFilter(ff.ForgeForm):
label='Pending moderation'),
ew.Option(py_value='ok', label='Ok')],
if_missing='pending'),
- ew.IntField(name='flag',
- label='Show posts with at least "n" flags',
- css_class='text',
- if_missing=0),
ew.InputField(name='username',
label='Show post filtered by username'),
ew.SubmitButton(label='Filter Posts')
@@ -317,10 +306,6 @@ class Post(HierWidget):
$('div.discussion-post').each(function () {
var post = this;
$('.submit', post).button();
- $('.flag_post', post).click(function (evt) {
- evt.preventDefault();
- this.parentNode.submit();
- });
$('.moderate_post', post).click(function(e){
e.preventDefault();
var mod = $(this).text();
http://git-wip-us.apache.org/repos/asf/allura/blob/1159ede4/Allura/allura/model/discuss.py
----------------------------------------------------------------------
diff --git a/Allura/allura/model/discuss.py b/Allura/allura/model/discuss.py
index 69bf556..96096da 100644
--- a/Allura/allura/model/discuss.py
+++ b/Allura/allura/model/discuss.py
@@ -484,8 +484,6 @@ class Post(Message, VersionedArtifact, ActivityObject):
subject = FieldProperty(schema.Deprecated)
status = FieldProperty(schema.OneOf('ok', 'pending', 'spam',
if_missing='pending'))
- flagged_by = FieldProperty([schema.ObjectId])
- flags = FieldProperty(int, if_missing=0)
last_edit_date = FieldProperty(datetime, if_missing=None)
last_edit_by_id = AlluraUserProperty()
edit_count = FieldProperty(int, if_missing=0)
@@ -506,7 +504,6 @@ class Post(Message, VersionedArtifact, ActivityObject):
subject=self.subject,
status=self.status,
text=self.text,
- flagged_by=map(str, self.flagged_by),
timestamp=self.timestamp,
last_edited=self.last_edit_date,
author_id=str(author._id),
http://git-wip-us.apache.org/repos/asf/allura/blob/1159ede4/Allura/allura/templates/widgets/flag_post.html
----------------------------------------------------------------------
diff --git a/Allura/allura/templates/widgets/flag_post.html b/Allura/allura/templates/widgets/flag_post.html
deleted file mode 100644
index 64a7d6e..0000000
--- a/Allura/allura/templates/widgets/flag_post.html
+++ /dev/null
@@ -1,24 +0,0 @@
-{#-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
--#}
-{% import 'allura:templates/jinja_master/lib.html' as lib with context %}
-<form method="POST" action="{{action}}">
- <input type="hidden" name="delete" value="True"/>
- {{ g.icons['flag'].render(show_title=True, extra_css='flag_post') }}
- {{lib.csrf_token()}}
-</form>
http://git-wip-us.apache.org/repos/asf/allura/blob/1159ede4/Allura/allura/templates/widgets/moderate_posts.html
----------------------------------------------------------------------
diff --git a/Allura/allura/templates/widgets/moderate_posts.html b/Allura/allura/templates/widgets/moderate_posts.html
index 7a81e1e..6a73669 100644
--- a/Allura/allura/templates/widgets/moderate_posts.html
+++ b/Allura/allura/templates/widgets/moderate_posts.html
@@ -32,7 +32,6 @@
<th><a href="#">[x]</a></th>
<th>Timestamp</th>
<th>Status</th>
- <th>Flags?</th>
<th>Author</th>
<th>Subject</th>
<th>Text</th>
@@ -49,7 +48,6 @@
</td>
<td>{{h.ago(post.timestamp)}}</td>
<td>{{post.status}}</td>
- <td>{{post.flags}}</td>
{% set author = post.author() %}
<td>{{author.display_name}} ({{author.username}})</td>
<td>{{post.thread.subject or '(no subject)'}}</td>
http://git-wip-us.apache.org/repos/asf/allura/blob/1159ede4/Allura/docs/api-rest/examples/discussion.json
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/examples/discussion.json b/Allura/docs/api-rest/examples/discussion.json
index 128269b..51fa7fb 100755
--- a/Allura/docs/api-rest/examples/discussion.json
+++ b/Allura/docs/api-rest/examples/discussion.json
@@ -8,7 +8,6 @@
"shortname": "devs",
"_id": "55ad23c34d21224d82656add",
"last_post": {
- "flagged_by": [],
"status": "ok",
"last_edited": "2015-07-20 16:39:53.290000",
"author": "root",
@@ -29,7 +28,6 @@
"shortname": "general",
"_id": "5568f6684d212236d1eaed07",
"last_post": {
- "flagged_by": [],
"status": "ok",
"last_edited": null,
"author": "root",
http://git-wip-us.apache.org/repos/asf/allura/blob/1159ede4/Allura/docs/api-rest/schemas/discussion.json
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/schemas/discussion.json b/Allura/docs/api-rest/schemas/discussion.json
index 8f62a2f..5a66073 100755
--- a/Allura/docs/api-rest/schemas/discussion.json
+++ b/Allura/docs/api-rest/schemas/discussion.json
@@ -36,10 +36,6 @@
"type": "object",
"id": "last_post",
"properties": {
- "flagged_by": {
- "type": "array",
- "id": "flagged_by"
- },
"status": {
"type": "string",
"id": "status"
http://git-wip-us.apache.org/repos/asf/allura/blob/1159ede4/ForgeDiscussion/forgediscussion/controllers/forum.py
----------------------------------------------------------------------
diff --git a/ForgeDiscussion/forgediscussion/controllers/forum.py b/ForgeDiscussion/forgediscussion/controllers/forum.py
index ba1f366..bb0fa33 100644
--- a/ForgeDiscussion/forgediscussion/controllers/forum.py
+++ b/ForgeDiscussion/forgediscussion/controllers/forum.py
@@ -60,7 +60,6 @@ class WidgetConfig(object):
subscribe_form = SubscribeForm()
edit_post = DW.EditPost(show_subject=True)
moderate_thread = FW.ModerateThread()
- flag_post = DW.FlagPost()
post_filter = DW.PostFilter()
moderate_posts = DW.ModeratePosts()
# Other widgets
[7/8] allura git commit: [#8020] ticket:875 updated widget
Posted by br...@apache.org.
[#8020] ticket:875 updated widget
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/83458a45
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/83458a45
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/83458a45
Branch: refs/heads/db/8020
Commit: 83458a45037b757f806ff190be8c108ad81369e5
Parents: 7dc7af4
Author: DeV1doR <de...@ukr.net>
Authored: Fri Dec 11 15:14:57 2015 +0200
Committer: Dave Brondsema <da...@brondsema.net>
Committed: Wed Jan 6 12:51:41 2016 -0500
----------------------------------------------------------------------
Allura/allura/lib/widgets/discuss.py | 1 +
Allura/allura/templates/widgets/post_widget.html | 4 +++-
2 files changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/83458a45/Allura/allura/lib/widgets/discuss.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/widgets/discuss.py b/Allura/allura/lib/widgets/discuss.py
index 5badc98..2d4dfea 100644
--- a/Allura/allura/lib/widgets/discuss.py
+++ b/Allura/allura/lib/widgets/discuss.py
@@ -347,6 +347,7 @@ class Post(HierWidget):
else if (mod == 'Undo'){
spam_block_display($(post), 'block');
$(post).find('.spam-present').hide();
+ $(post).find('.options a').eq(0).hide();
}
}
});
http://git-wip-us.apache.org/repos/asf/allura/blob/83458a45/Allura/allura/templates/widgets/post_widget.html
----------------------------------------------------------------------
diff --git a/Allura/allura/templates/widgets/post_widget.html b/Allura/allura/templates/widgets/post_widget.html
index a8aa822..2695c2b 100644
--- a/Allura/allura/templates/widgets/post_widget.html
+++ b/Allura/allura/templates/widgets/post_widget.html
@@ -46,13 +46,15 @@
<div class="grid-14 post-content" style="width: {{indent == 0 and 525 or (indent <= 40 and 515-indent*10 or 65)}}px">
<div class="spam-present">
<span class="spam-text">Comment has been marked as spam. </span>
+ {% if h.has_access(value, 'moderate')() %}
<form method="POST" action="{{value.url()+'moderate'}}">
<input type="hidden" name="undo" value="True"/>
<a href="" class="moderate_post little_link"><span>Undo</span></a>
{{lib.csrf_token()}}
</form>
+ {% endif %}
<br>
- <span class="spam-text">You can see all comments posted by this user </span><a href="/p/test/tickets/_discuss/moderate">here</a>
+ <span class="spam-text">You can see all comments posted by this user </span><a href="/p/test/tickets/_discuss/moderate?username={{value.author().username}}&status=spam">here</a>
</div>
<div class="display_post{% if pending and moderator %} moderate{% endif %}">
{% if pending and not moderator %}