diff weblinks/admin.py @ 581:ee87ea74d46b

For Django 1.4, rearranged project structure for new manage.py.
author Brian Neal <bgneal@gmail.com>
date Sat, 05 May 2012 17:10:48 -0500
parents gpp/weblinks/admin.py@701730b2fcda
children 6e6492468bb8
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/weblinks/admin.py	Sat May 05 17:10:48 2012 -0500
@@ -0,0 +1,62 @@
+"""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
+
+
+class CategoryAdmin(admin.ModelAdmin):
+    list_display = ('title', 'slug', 'description', 'count')
+    prepopulated_fields = {'slug': ('title', )}
+    readonly_fields = ('count', )
+
+
+class PendingLinkAdmin(admin.ModelAdmin):
+    list_display = ('title', 'url', 'user', 'category', 'date_added')
+    raw_id_fields = ('user', )
+    actions = ('approve_links', )
+    readonly_fields = ('update_date', )
+
+    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()
+
+        count = len(qs)
+        msg = "1 link" if count == 1 else "%d links" % count
+        self.message_user(request, "%s approved." % msg)
+
+    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')
+    date_hierarchy = 'date_added'
+    ordering = ('-date_added', )
+    search_fields = ('title', 'description', 'url', 'user__username')
+    raw_id_fields = ('user', )
+    readonly_fields = ('update_date', )
+    save_on_top = True
+
+
+class FlaggedLinkAdmin(admin.ModelAdmin):
+    list_display = ('__unicode__', 'url', 'get_link_url', 'user', 'date_flagged')
+    date_hierarchy = 'date_flagged'
+    raw_id_fields = ('user', )
+
+admin.site.register(Category, CategoryAdmin)
+admin.site.register(PendingLink, PendingLinkAdmin)
+admin.site.register(Link, LinkAdmin)
+admin.site.register(FlaggedLink, FlaggedLinkAdmin)