diff gpp/weblinks/admin.py @ 204:b4305e18d3af

Resolve ticket #74. Add user badges. Some extra credit was done here: also refactored how pending news, links, and downloads are handled.
author Brian Neal <bgneal@gmail.com>
date Sat, 01 May 2010 21:53:59 +0000
parents fa7d82bfb100
children 7e8d2dda99e3
line wrap: on
line diff
--- a/gpp/weblinks/admin.py	Wed Apr 28 03:00:31 2010 +0000
+++ b/gpp/weblinks/admin.py	Sat May 01 21:53:59 2010 +0000
@@ -1,7 +1,9 @@
 """This file contains the automatic admin site definitions for the weblinks models"""
+import datetime
 
 from django.contrib import admin
 from weblinks.models import Category
+from weblinks.models import PendingLink
 from weblinks.models import Link
 from weblinks.models import FlaggedLink
 
@@ -11,6 +13,27 @@
     readonly_fields = ('count', )
 
 
+class PendingLinkAdmin(admin.ModelAdmin):
+    list_display = ('title', 'url', 'user', 'category', 'date_added')
+    raw_id_fields = ('user', )
+    actions = ('approve_links', )
+
+    def approve_links(self, request, qs):
+        for pending_link in qs:
+            link = Link(category=pending_link.category,
+                    title=pending_link.title,
+                    url=pending_link.url,
+                    description=pending_link.description,
+                    user=pending_link.user,
+                    date_added=datetime.datetime.now(),
+                    hits=0,
+                    is_public=True)
+            link.save()
+            pending_link.delete()
+
+    approve_links.short_description = "Approve selected links"
+
+
 class LinkAdmin(admin.ModelAdmin):
     list_display = ('title', 'url', 'category', 'date_added', 'hits', 'is_public')
     list_filter = ('date_added', 'is_public', 'category')
@@ -27,5 +50,6 @@
     raw_id_fields = ('user', )
 
 admin.site.register(Category, CategoryAdmin)
+admin.site.register(PendingLink, PendingLinkAdmin)
 admin.site.register(Link, LinkAdmin)
 admin.site.register(FlaggedLink, FlaggedLinkAdmin)