view gpp/news/admin.py @ 208:2022c0409296

Fix #76; use POST to get downloads to avoid having side-effects (updating hit count) on GETs.
author Brian Neal <bgneal@gmail.com>
date Wed, 05 May 2010 03:12:15 +0000
parents b4305e18d3af
children 65016249bf35
line wrap: on
line source
"""
This file contains the automatic admin site definitions for the News models.
"""
import datetime

from django.contrib import admin
from django.conf import settings
from django.core.cache import cache

from news.models import PendingStory
from news.models import Story
from news.models import Category

class PendingStoryAdmin(admin.ModelAdmin):
    list_display = ('title', 'date_submitted', 'submitter')
    list_filter = ('date_submitted', )
    search_fields = ('title', 'short_text', 'long_text')
    date_hierarchy = 'date_submitted'
    actions = ('approve_story', )

    def approve_story(self, request, qs):
        for pending_story in qs:
            story = Story(
                    title=pending_story.title,
                    submitter=pending_story.submitter,
                    category=pending_story.category,
                    short_text=pending_story.short_text,
                    long_text=pending_story.long_text,
                    date_submitted=datetime.datetime.now(),
                    allow_comments=pending_story.allow_comments,
                    tags=pending_story.tags)
            story.save()
            pending_story.delete()
            cache.delete('home_news')

    approve_story.short_description = "Approve selected pending stories"

    class Media:
        js = settings.GPP_THIRD_PARTY_JS['tiny_mce']


class StoryAdmin(admin.ModelAdmin):
    list_display = ('title', 'date_submitted', 'submitter', 'category')
    list_filter = ('date_submitted', 'category')
    search_fields = ('title', 'short_text', 'long_text')
    date_hierarchy = 'date_submitted'

    class Media:
        js = settings.GPP_THIRD_PARTY_JS['tiny_mce']


admin.site.register(Category)
admin.site.register(Story, StoryAdmin)
admin.site.register(PendingStory, PendingStoryAdmin)