annotate gpp/forums/admin.py @ 271:4746df47a538

Follow on to last rev (r292) for #126. Missed updating a shoutbox template. Also the repoze.timeago package uses UTC time by default. Change this to local time for now until we decide to switch over to UTC for everything.
author Brian Neal <bgneal@gmail.com>
date Sun, 26 Sep 2010 17:42:00 +0000
parents a46788862737
children 7e19180b128d
rev   line source
bgneal@75 1 """
bgneal@75 2 This file contains the admin definitions for the forums application.
bgneal@75 3 """
bgneal@75 4 from django.contrib import admin
bgneal@75 5
bgneal@75 6 from forums.models import Category
bgneal@75 7 from forums.models import Forum
bgneal@75 8 from forums.models import Topic
bgneal@75 9 from forums.models import Post
bgneal@98 10 from forums.models import FlaggedPost
bgneal@113 11 from forums.models import TopicLastVisit
bgneal@204 12 import bio.badges
bgneal@75 13
bgneal@75 14
bgneal@75 15 class CategoryAdmin(admin.ModelAdmin):
bgneal@75 16 list_display = ('name', 'position', )
bgneal@206 17 list_editable = ('position', )
bgneal@81 18 prepopulated_fields = { 'slug': ('name', ) }
bgneal@81 19 save_on_top = True
bgneal@75 20
bgneal@75 21
bgneal@75 22 class ForumAdmin(admin.ModelAdmin):
bgneal@75 23 list_display = ('name', 'category', 'position', 'topic_count', 'post_count')
bgneal@206 24 list_editable = ('position', )
bgneal@75 25 prepopulated_fields = { 'slug': ('name', ) }
bgneal@75 26 raw_id_fields = ('last_post', )
bgneal@206 27 ordering = ('category', )
bgneal@81 28 save_on_top = True
bgneal@81 29
bgneal@75 30
bgneal@75 31 class TopicAdmin(admin.ModelAdmin):
bgneal@102 32 list_display = ('name', 'forum', 'creation_date', 'update_date', 'user', 'sticky', 'locked',
bgneal@75 33 'post_count')
bgneal@232 34 raw_id_fields = ('user', 'last_post', 'subscribers', 'bookmarkers')
bgneal@75 35 search_fields = ('name', )
bgneal@75 36 date_hierarchy = 'creation_date'
bgneal@75 37 list_filter = ('creation_date', 'update_date', )
bgneal@81 38 save_on_top = True
bgneal@75 39
bgneal@75 40
bgneal@75 41 class PostAdmin(admin.ModelAdmin):
bgneal@75 42 list_display = ('topic', 'user', 'creation_date', 'update_date', 'summary')
bgneal@75 43 raw_id_fields = ('topic', 'user', )
bgneal@75 44 exclude = ('html', )
bgneal@75 45 search_fields = ('body', )
bgneal@75 46 date_hierarchy = 'creation_date'
bgneal@75 47 list_filter = ('creation_date', 'update_date', )
bgneal@97 48 ordering = ('-creation_date', )
bgneal@81 49 save_on_top = True
bgneal@75 50
bgneal@75 51
bgneal@98 52 class FlaggedPostAdmin(admin.ModelAdmin):
bgneal@98 53 list_display = ('__unicode__', 'flag_date', 'get_post_url')
bgneal@204 54 actions = ('accept_flags', )
bgneal@204 55
bgneal@204 56 def accept_flags(self, request, qs):
bgneal@204 57 """This admin action awards a security pin to the user who reported
bgneal@204 58 the post and then deletes the flagged post object.
bgneal@204 59 """
bgneal@204 60 for flag in qs:
bgneal@204 61 bio.badges.award_badge(bio.badges.SECURITY_PIN, flag.user)
bgneal@204 62 flag.delete()
bgneal@204 63
bgneal@204 64 accept_flags.short_description = "Accept selected flagged posts"
bgneal@98 65
bgneal@98 66
bgneal@113 67 class TopicLastVisitAdmin(admin.ModelAdmin):
bgneal@113 68 raw_id_fields = ('user', 'topic')
bgneal@113 69 list_display = ('user', 'topic', 'last_visit')
bgneal@113 70
bgneal@113 71
bgneal@75 72 admin.site.register(Category, CategoryAdmin)
bgneal@75 73 admin.site.register(Forum, ForumAdmin)
bgneal@75 74 admin.site.register(Topic, TopicAdmin)
bgneal@75 75 admin.site.register(Post, PostAdmin)
bgneal@98 76 admin.site.register(FlaggedPost, FlaggedPostAdmin)
bgneal@113 77 admin.site.register(TopicLastVisit, TopicLastVisitAdmin)