From: Harris Lapiroff Date: Wed, 2 Mar 2011 19:59:25 +0000 (-0500) Subject: Merge remote branch 'melinath/master' X-Git-Tag: philo-0.9~17^2~4^2 X-Git-Url: http://git.ithinksw.org/philo.git/commitdiff_plain/b8668727caf6da1e8425fd32334a4ec5919ce4a2?hp=77f783071cd3c6246a90dc6aa869b4efe7610379 Merge remote branch 'melinath/master' --- diff --git a/admin/forms/containers.py b/admin/forms/containers.py index 181a3e7..420ba17 100644 --- a/admin/forms/containers.py +++ b/admin/forms/containers.py @@ -169,19 +169,19 @@ class ContentletInlineFormSet(ContainerInlineFormSet): class ContentReferenceInlineFormSet(ContainerInlineFormSet): def get_containers(self): try: - containers = list(self.instance.containers[1]) + containers = self.instance.containers[1] except ObjectDoesNotExist: - containers = [] + containers = {} filter = Q() - for name, ct in containers: + for name, ct in containers.items(): filter |= Q(name=name, content_type=ct) qs = self.get_queryset().filter(filter) container_dict = SortedDict([(container.name, container) for container in qs]) keyOrder = [] - for name, ct in containers: + for name, ct in containers.items(): keyOrder.append(name) if name not in container_dict: container_dict[name] = self.model(name=name, content_type=ct) 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): diff --git a/contrib/shipherd/templatetags/shipherd.py b/contrib/shipherd/templatetags/shipherd.py index 317fffb..83e98a2 100644 --- a/contrib/shipherd/templatetags/shipherd.py +++ b/contrib/shipherd/templatetags/shipherd.py @@ -82,14 +82,15 @@ def recursenavigation(parser, token): {{ navloop.revcounter }}, {{ navloop.revcounter0 }}, {{ navloop.first }}, {{ navloop.last }}, and {{ navloop.parentloop }} in the context. - Note that the tag takes one variable, which is a Node instance. + Note that the tag takes two variables: a Node instance and the key of the navigation to + be recursed. Usage: