annotate gpp/weblinks/admin.py @ 452:c77359d0d951

Working on #220. Can't test locally, so committing in increments.
author Brian Neal <bgneal@gmail.com>
date Thu, 30 Jun 2011 02:13:36 +0000
parents 701730b2fcda
children
rev   line source
gremmie@1 1 """This file contains the automatic admin site definitions for the weblinks models"""
bgneal@204 2 import datetime
gremmie@1 3
gremmie@1 4 from django.contrib import admin
gremmie@1 5 from weblinks.models import Category
bgneal@204 6 from weblinks.models import PendingLink
gremmie@1 7 from weblinks.models import Link
gremmie@1 8 from weblinks.models import FlaggedLink
gremmie@1 9
bgneal@193 10
bgneal@193 11 class CategoryAdmin(admin.ModelAdmin):
bgneal@242 12 list_display = ('title', 'slug', 'description', 'count')
bgneal@242 13 prepopulated_fields = {'slug': ('title', )}
bgneal@193 14 readonly_fields = ('count', )
bgneal@193 15
bgneal@193 16
bgneal@204 17 class PendingLinkAdmin(admin.ModelAdmin):
bgneal@204 18 list_display = ('title', 'url', 'user', 'category', 'date_added')
bgneal@204 19 raw_id_fields = ('user', )
bgneal@204 20 actions = ('approve_links', )
bgneal@277 21 readonly_fields = ('update_date', )
bgneal@204 22
bgneal@204 23 def approve_links(self, request, qs):
bgneal@204 24 for pending_link in qs:
bgneal@204 25 link = Link(category=pending_link.category,
bgneal@204 26 title=pending_link.title,
bgneal@204 27 url=pending_link.url,
bgneal@204 28 description=pending_link.description,
bgneal@204 29 user=pending_link.user,
bgneal@204 30 date_added=datetime.datetime.now(),
bgneal@204 31 hits=0,
bgneal@204 32 is_public=True)
bgneal@204 33 link.save()
bgneal@204 34 pending_link.delete()
bgneal@204 35
bgneal@398 36 count = len(qs)
bgneal@398 37 msg = "1 link" if count == 1 else "%d links" % count
bgneal@398 38 self.message_user(request, "%s approved." % msg)
bgneal@398 39
bgneal@204 40 approve_links.short_description = "Approve selected links"
bgneal@204 41
bgneal@204 42
gremmie@1 43 class LinkAdmin(admin.ModelAdmin):
gremmie@1 44 list_display = ('title', 'url', 'category', 'date_added', 'hits', 'is_public')
gremmie@1 45 list_filter = ('date_added', 'is_public', 'category')
gremmie@1 46 date_hierarchy = 'date_added'
gremmie@1 47 ordering = ('-date_added', )
gremmie@1 48 search_fields = ('title', 'description', 'url', 'user__username')
gremmie@1 49 raw_id_fields = ('user', )
bgneal@277 50 readonly_fields = ('update_date', )
gremmie@1 51 save_on_top = True
gremmie@1 52
bgneal@193 53
gremmie@1 54 class FlaggedLinkAdmin(admin.ModelAdmin):
bgneal@165 55 list_display = ('__unicode__', 'url', 'get_link_url', 'user', 'date_flagged')
gremmie@1 56 date_hierarchy = 'date_flagged'
gremmie@1 57 raw_id_fields = ('user', )
gremmie@1 58
bgneal@193 59 admin.site.register(Category, CategoryAdmin)
bgneal@204 60 admin.site.register(PendingLink, PendingLinkAdmin)
gremmie@1 61 admin.site.register(Link, LinkAdmin)
gremmie@1 62 admin.site.register(FlaggedLink, FlaggedLinkAdmin)