Ticket #11625: comment_mod_actions.diff
File comment_mod_actions.diff, 4.3 KB (added by , 15 years ago) |
---|
-
django/contrib/comments/admin.py
diff --git a/django/contrib/comments/admin.py b/django/contrib/comments/admin.py index 3b1fb14..fda2651 100644
a b 1 1 from django.contrib import admin 2 from django.contrib.comments.models import Comment 2 from django.contrib.comments.models import Comment, CommentFlag 3 3 from django.utils.translation import ugettext_lazy as _ 4 from django.contrib.comments import get_model 4 from django.contrib.comments import get_model, signals 5 5 6 6 class CommentsAdmin(admin.ModelAdmin): 7 7 fieldsets = ( … … class CommentsAdmin(admin.ModelAdmin): 21 21 date_hierarchy = 'submit_date' 22 22 ordering = ('-submit_date',) 23 23 search_fields = ('comment', 'user__username', 'user_name', 'user_email', 'user_url', 'ip_address') 24 actions = ['approve', 'remove'] 25 26 def approve(self, request, queryset): 27 """ Approve comments through moderation. """ 28 cnt = 0 29 for comment in queryset: 30 # Flag the comment as approved. 31 flag, created = CommentFlag.objects.get_or_create( 32 comment = comment, 33 user = request.user, 34 flag = CommentFlag.MODERATOR_APPROVAL 35 ) 36 37 comment.is_removed = False 38 comment.is_public = True 39 comment.save() 40 41 signals.comment_was_flagged.send( 42 sender = comment.__class__, 43 comment = comment, 44 flag = flag, 45 created = created, 46 request = request 47 ) 48 cnt += 1 49 self.message_user(request, '%s successfully approved.' % self._get_message_bit(cnt)) 50 approve.short_description = 'Approve selected comments' 51 52 def remove(self, request, queryset): 53 """ Remove comments through moderation. """ 54 cnt = 0 55 for comment in queryset: 56 # Flag the comment as removed. 57 flag, created = CommentFlag.objects.get_or_create( 58 comment = comment, 59 user = request.user, 60 flag = CommentFlag.MODERATOR_DELETION 61 ) 62 63 comment.is_removed = True 64 comment.save() 65 66 signals.comment_was_flagged.send( 67 sender = comment.__class__, 68 comment = comment, 69 flag = flag, 70 created = created, 71 request = request 72 ) 73 cnt += 1 74 self.message_user(request, '%s successfully removed.' % self._get_message_bit(cnt)) 75 remove.short_description = 'Remove selected comments' 76 77 def _get_message_bit(self, rows_updated): 78 if rows_updated == 1: 79 return '1 comment was' 80 else: 81 return '%s comments were' % rows_updated 24 82 25 83 # Only register the default admin if the model is the built-in comment model 26 84 # (this won't be true if there's a custom comment app). -
tests/regressiontests/comment_tests/tests/__init__.py
diff --git a/tests/regressiontests/comment_tests/tests/__init__.py b/tests/regressiontests/comment_tests/tests/__init__.py index 449fea4..b2ead81 100644
a b from regressiontests.comment_tests.tests.templatetag_tests import * 87 87 from regressiontests.comment_tests.tests.comment_view_tests import * 88 88 from regressiontests.comment_tests.tests.moderation_view_tests import * 89 89 from regressiontests.comment_tests.tests.comment_utils_moderators_tests import * 90 from regressiontests.comment_tests.tests.admin_moderation_tests import * -
tests/regressiontests/comment_tests/urls.py
diff --git a/tests/regressiontests/comment_tests/urls.py b/tests/regressiontests/comment_tests/urls.py index 0058689..76ca4b9 100644
a b 1 1 from django.conf.urls.defaults import * 2 from django.contrib import admin 2 3 3 4 urlpatterns = patterns('regressiontests.comment_tests.custom_comments.views', 4 5 url(r'^post/$', 'custom_submit_comment'), … … urlpatterns = patterns('regressiontests.comment_tests.custom_comments.views', 7 8 url(r'^approve/(\d+)/$', 'custom_approve_comment'), 8 9 ) 9 10 11 urlpatterns += patterns('', 12 url(r'^admin/', include(admin.site.urls)), 13 ) 14