diff gpp/comments/admin.py @ 204:b4305e18d3af

Resolve ticket #74. Add user badges. Some extra credit was done here: also refactored how pending news, links, and downloads are handled.
author Brian Neal <bgneal@gmail.com>
date Sat, 01 May 2010 21:53:59 +0000
parents 91a01b8b5885
children cdfa3ed59600
line wrap: on
line diff
--- a/gpp/comments/admin.py	Wed Apr 28 03:00:31 2010 +0000
+++ b/gpp/comments/admin.py	Sat May 01 21:53:59 2010 +0000
@@ -4,6 +4,8 @@
 from django.contrib import admin
 from comments.models import Comment
 from comments.models import CommentFlag
+import bio.badges
+
 
 class CommentAdmin(admin.ModelAdmin):
     fieldsets = (
@@ -25,8 +27,21 @@
     search_fields = ('comment', 'user__username', 'ip_address')
     raw_id_fields = ('user', 'content_type')
 
+
 class CommentFlagAdmin(admin.ModelAdmin):
     list_display = ('__unicode__', 'flag_date', 'get_comment_url')
+    actions = ('accept_flags', )
+
+    def accept_flags(self, request, qs):
+        """This admin action awards a security pin to the user who reported
+        the comment and then deletes the flagged comment object.
+        """
+        for flag in qs:
+            bio.badges.award_badge(bio.badges.SECURITY_PIN, flag.user)
+            flag.delete()
+
+    accept_flags.short_description = "Accept selected comment flags"
+
 
 admin.site.register(Comment, CommentAdmin)
 admin.site.register(CommentFlag, CommentFlagAdmin)