view gpp/comments/admin.py @ 569:3fe2eced1be7

Now developing on Ubuntu 12.04 with Python 2.7. Use symbolic links for media, so add media/banners to .hgignore. I had a syntax error in banner_tags.py that only Python 2.7 caught. For local development, read database name from SECRETS.
author Brian Neal <bgneal@gmail.com>
date Sun, 29 Apr 2012 16:00:01 -0500
parents cdfa3ed59600
children
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', )
    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)