X-Git-Url: http://git.ithinksw.org/philo.git/blobdiff_plain/8b73562314685b0588d2ee1c5a61436d8d1e4e20..2371c4b82b7f9ea5121e95b42e1f9dc2e25eb148:/contrib/penfield/admin.py diff --git a/contrib/penfield/admin.py b/contrib/penfield/admin.py index 5fc9dcc..c758e67 100644 --- a/contrib/penfield/admin.py +++ b/contrib/penfield/admin.py @@ -1,6 +1,52 @@ -from models import Entry, Blog from django.contrib import admin -from philo.admin import EntityAdmin +from philo.admin import EntityAdmin, AddTagAdmin +from philo.contrib.penfield.models import BlogEntry, Blog, BlogView, Newsletter, NewsletterArticle, NewsletterIssue, NewsletterView -admin.site.register(Entry, EntityAdmin) -admin.site.register(Blog) \ No newline at end of file + +class TitledAdmin(EntityAdmin): + prepopulated_fields = {'slug': ('title',)} + list_display = ('title', 'slug') + + +class BlogAdmin(TitledAdmin): + pass + + +class BlogEntryAdmin(TitledAdmin, AddTagAdmin): + filter_horizontal = ['tags'] + + +class BlogViewAdmin(EntityAdmin): + pass + + +class NewsletterAdmin(TitledAdmin): + pass + + +class NewsletterArticleAdmin(TitledAdmin, AddTagAdmin): + filter_horizontal = TitledAdmin.filter_horizontal + ('tags', 'authors') + list_display = ['title', 'date', 'author_names'] + search_fields = ('title', 'authors__name',) + date_hierarchy = 'date' + + def author_names(self, obj): + return ', '.join([author.get_full_name() for author in obj.authors.all()]) + author_names.short_description = "Authors" + + +class NewsletterIssueAdmin(TitledAdmin): + filter_horizontal = TitledAdmin.filter_horizontal + ('articles',) + + +class NewsletterViewAdmin(EntityAdmin): + pass + + +admin.site.register(Blog, BlogAdmin) +admin.site.register(BlogEntry, BlogEntryAdmin) +admin.site.register(BlogView, BlogViewAdmin) +admin.site.register(Newsletter, NewsletterAdmin) +admin.site.register(NewsletterArticle, NewsletterArticleAdmin) +admin.site.register(NewsletterIssue, NewsletterIssueAdmin) +admin.site.register(NewsletterView, NewsletterViewAdmin) \ No newline at end of file