diff comments/admin.py @ 581:ee87ea74d46b

For Django 1.4, rearranged project structure for new manage.py.
author Brian Neal <bgneal@gmail.com>
date Sat, 05 May 2012 17:10:48 -0500
parents gpp/comments/admin.py@cdfa3ed59600
children be5b37719059
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/comments/admin.py	Sat May 05 17:10:48 2012 -0500
@@ -0,0 +1,48 @@
+"""
+This file contains the automatic admin site definitions for the comment models.
+"""
+from django.contrib import admin
+from comments.models import Comment
+from comments.models import CommentFlag
+import bio.badges
+
+
+class CommentAdmin(admin.ModelAdmin):
+    fieldsets = (
+        (None,
+           {'fields': ('content_type', 'object_id', )}
+        ),
+        ('Content',
+           {'fields': ('user', 'comment')}
+        ),
+        ('Metadata',
+           {'fields': ('ip_address', 'is_public', 'is_removed')}
+        ),
+     )
+    list_display = ('__unicode__', 'content_type', 'object_id', 'ip_address',
+            'creation_date', 'is_public', 'not_removed')
+    list_filter = ('creation_date', 'is_public', 'is_removed')
+    date_hierarchy = 'creation_date'
+    ordering = ('-creation_date', )
+    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', )
+    raw_id_fields = ('user', 'comment')
+
+    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)