Mercurial > public > sg101
diff downloads/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/downloads/admin.py@6144023ebea8 |
children | 0dd84cff2477 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/downloads/admin.py Sat May 05 17:10:48 2012 -0500 @@ -0,0 +1,81 @@ +""" +This file contains the automatic admin site definitions for the downloads models. +""" +import datetime + +from django.contrib import admin +from django.conf import settings + +from downloads.models import PendingDownload +from downloads.models import Download +from downloads.models import Category +from downloads.models import AllowedExtension +from downloads.models import VoteRecord + + +class CategoryAdmin(admin.ModelAdmin): + list_display = ('title', 'slug', 'description', 'count') + prepopulated_fields = {'slug': ('title', )} + readonly_fields = ('count', ) + + +class PendingDownloadAdmin(admin.ModelAdmin): + exclude = ('html', ) + list_display = ('title', 'user', 'category', 'date_added', 'ip_address', 'size') + ordering = ('date_added', ) + raw_id_fields = ('user', ) + readonly_fields = ('update_date', ) + + actions = ('approve_downloads', ) + + def approve_downloads(self, request, qs): + for pending_dl in qs: + dl = Download( + title=pending_dl.title, + category=pending_dl.category, + description=pending_dl.description, + html=pending_dl.html, + file=pending_dl.file, + user=pending_dl.user, + date_added=datetime.datetime.now(), + ip_address=pending_dl.ip_address, + hits=0, + average_score=0.0, + total_votes=0, + is_public=True) + dl.save() + + # If we don't do this, the actual file will be deleted when + # the pending download is deleted. + pending_dl.file = None + pending_dl.delete() + + approve_downloads.short_description = "Approve selected downloads" + + +class DownloadAdmin(admin.ModelAdmin): + exclude = ('html', ) + list_display = ('title', 'user', 'category', 'date_added', 'ip_address', + 'hits', 'average_score', 'size', 'is_public') + list_filter = ('date_added', 'is_public', 'category') + list_editable = ('is_public', ) + date_hierarchy = 'date_added' + ordering = ('-date_added', ) + search_fields = ('title', 'description', 'user__username') + raw_id_fields = ('user', ) + readonly_fields = ('update_date', ) + save_on_top = True + + +class VoteRecordAdmin(admin.ModelAdmin): + list_display = ('user', 'download', 'vote_date') + list_filter = ('user', 'download') + date_hierarchy = 'vote_date' + + +admin.site.register(PendingDownload, PendingDownloadAdmin) +admin.site.register(Download, DownloadAdmin) +admin.site.register(Category, CategoryAdmin) +admin.site.register(AllowedExtension) +admin.site.register(VoteRecord, VoteRecordAdmin) +