gremmie@1: """
gremmie@1: This file contains the automatic admin site definitions for the comment models.
gremmie@1: """
gremmie@1: from django.contrib import admin
gremmie@1: from comments.models import Comment
gremmie@1: from comments.models import CommentFlag
bgneal@204: import bio.badges
bgneal@204: 
gremmie@1: 
gremmie@1: class CommentAdmin(admin.ModelAdmin):
gremmie@1:     fieldsets = (
gremmie@1:         (None,
gremmie@1:            {'fields': ('content_type', 'object_id', )}
gremmie@1:         ),
gremmie@1:         ('Content',
gremmie@1:            {'fields': ('user', 'comment')}
gremmie@1:         ),
gremmie@1:         ('Metadata',
gremmie@1:            {'fields': ('ip_address', 'is_public', 'is_removed')}
gremmie@1:         ),
gremmie@1:      )
bgneal@140:     list_display = ('__unicode__', 'content_type', 'object_id', 'ip_address',
bgneal@140:             'creation_date', 'is_public', 'not_removed')
gremmie@1:     list_filter = ('creation_date', 'is_public', 'is_removed')
gremmie@1:     date_hierarchy = 'creation_date'
gremmie@1:     ordering = ('-creation_date', )
gremmie@1:     search_fields = ('comment', 'user__username', 'ip_address')
gremmie@1:     raw_id_fields = ('user', 'content_type')
gremmie@1: 
bgneal@204: 
gremmie@1: class CommentFlagAdmin(admin.ModelAdmin):
bgneal@13:     list_display = ('__unicode__', 'flag_date', 'get_comment_url')
bgneal@204:     actions = ('accept_flags', )
bgneal@204: 
bgneal@204:     def accept_flags(self, request, qs):
bgneal@204:         """This admin action awards a security pin to the user who reported
bgneal@204:         the comment and then deletes the flagged comment object.
bgneal@204:         """
bgneal@204:         for flag in qs:
bgneal@204:             bio.badges.award_badge(bio.badges.SECURITY_PIN, flag.user)
bgneal@204:             flag.delete()
bgneal@204: 
bgneal@204:     accept_flags.short_description = "Accept selected comment flags"
bgneal@204: 
gremmie@1: 
gremmie@1: admin.site.register(Comment, CommentAdmin)
gremmie@1: admin.site.register(CommentFlag, CommentFlagAdmin)