From: Stephen Burrows Date: Thu, 24 Feb 2011 17:20:19 +0000 (-0500) Subject: Added an admin action to NewsletterArticleAdmin to handle creating a NewsletterIssue... X-Git-Tag: philo-0.9~17^2~7 X-Git-Url: http://git.ithinksw.org/philo.git/commitdiff_plain/6c0728cc000117f121ac9fdc70cd62ba500c2cf7 Added an admin action to NewsletterArticleAdmin to handle creating a NewsletterIssue from a selection of articles. Resolves issue 82. --- diff --git a/contrib/penfield/admin.py b/contrib/penfield/admin.py index 950539d..328394a 100644 --- a/contrib/penfield/admin.py +++ b/contrib/penfield/admin.py @@ -1,5 +1,7 @@ -from django.contrib import admin from django import forms +from django.contrib import admin +from django.core.urlresolvers import reverse +from django.http import HttpResponseRedirect, QueryDict from philo.admin import EntityAdmin, AddTagAdmin, COLLAPSE_CLASSES from philo.contrib.penfield.models import BlogEntry, Blog, BlogView, Newsletter, NewsletterArticle, NewsletterIssue, NewsletterView @@ -91,10 +93,18 @@ class NewsletterArticleAdmin(TitledAdmin, AddTagAdmin): 'classes': COLLAPSE_CLASSES }) ) + actions = ['make_issue'] def author_names(self, obj): return ', '.join([author.get_full_name() for author in obj.authors.all()]) author_names.short_description = "Authors" + + def make_issue(self, request, queryset): + opts = NewsletterIssue._meta + info = opts.app_label, opts.module_name + url = reverse("admin:%s_%s_add" % info) + return HttpResponseRedirect("%s?articles=%s" % (url, ",".join([str(a.pk) for a in queryset]))) + make_issue.short_description = u"Create issue from selected %(verbose_name_plural)s" class NewsletterIssueAdmin(TitledAdmin):