view gpp/comments/admin.py @ 361:6d6fdc58487c

Changes to oembed to support vimeo.
author Brian Neal <bgneal@gmail.com>
date Sat, 05 Mar 2011 03:23:29 +0000
parents b4305e18d3af
children cdfa3ed59600
line wrap: on
line source
"""
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', )

    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)