1 from django.contrib import admin
2 from philo.admin import EntityAdmin, AddTagAdmin
3 from philo.contrib.penfield.models import BlogEntry, Blog, BlogView, Newsletter, NewsletterArticle, NewsletterIssue, NewsletterView
6 class TitledAdmin(EntityAdmin):
7 prepopulated_fields = {'slug': ('title',)}
8 list_display = ('title', 'slug')
11 class BlogAdmin(TitledAdmin):
15 class BlogEntryAdmin(TitledAdmin, AddTagAdmin):
16 filter_horizontal = ['tags']
19 class BlogViewAdmin(EntityAdmin):
23 class NewsletterAdmin(TitledAdmin):
27 class NewsletterArticleAdmin(TitledAdmin, AddTagAdmin):
28 filter_horizontal = TitledAdmin.filter_horizontal + ('tags', 'authors')
29 list_display = ['title', 'date', 'author_names']
30 search_fields = ('title', 'authors__name',)
31 date_hierarchy = 'date'
33 def author_names(self, obj):
34 return ', '.join([author.get_full_name() for author in obj.authors.all()])
35 author_names.short_description = "Authors"
38 class NewsletterIssueAdmin(TitledAdmin):
39 filter_horizontal = TitledAdmin.filter_horizontal + ('articles',)
42 class NewsletterViewAdmin(EntityAdmin):
46 admin.site.register(Blog, BlogAdmin)
47 admin.site.register(BlogEntry, BlogEntryAdmin)
48 admin.site.register(BlogView, BlogViewAdmin)
49 admin.site.register(Newsletter, NewsletterAdmin)
50 admin.site.register(NewsletterArticle, NewsletterArticleAdmin)
51 admin.site.register(NewsletterIssue, NewsletterIssueAdmin)
52 admin.site.register(NewsletterView, NewsletterViewAdmin)