X-Git-Url: http://git.ithinksw.org/philo.git/blobdiff_plain/98bd3a178f3e62e5591e809ac61e07a5bf37c292..bf7348280872f3e17f6cb766f27d57c41d9e2ae0:/admin/pages.py diff --git a/admin/pages.py b/admin/pages.py index 234b9d8..f9e96c0 100644 --- a/admin/pages.py +++ b/admin/pages.py @@ -1,9 +1,10 @@ +from django.conf import settings from django.contrib import admin from django import forms -from philo.admin.base import COLLAPSE_CLASSES +from philo.admin.base import COLLAPSE_CLASSES, TreeAdmin from philo.admin.nodes import ViewAdmin from philo.models.pages import Page, Template, Contentlet, ContentReference -from philo.forms import ContentletInlineFormSet, ContentReferenceInlineFormSet, ContentletForm, ContentReferenceForm +from philo.admin.forms.containers import * class ContentletInline(admin.StackedInline): @@ -13,7 +14,11 @@ class ContentletInline(admin.StackedInline): formset = ContentletInlineFormSet form = ContentletForm can_delete = False - template = 'admin/philo/edit_inline/tabular_container.html' + classes = ('collapse-open', 'collapse','open') + if 'grappelli' in settings.INSTALLED_APPS: + template = 'admin/philo/edit_inline/grappelli_tabular_container.html' + else: + template = 'admin/philo/edit_inline/tabular_container.html' class ContentReferenceInline(admin.StackedInline): @@ -23,7 +28,11 @@ class ContentReferenceInline(admin.StackedInline): formset = ContentReferenceInlineFormSet form = ContentReferenceForm can_delete = False - template = 'admin/philo/edit_inline/tabular_container.html' + classes = ('collapse-open', 'collapse','open') + if 'grappelli' in settings.INSTALLED_APPS: + template = 'admin/philo/edit_inline/grappelli_tabular_container.html' + else: + template = 'admin/philo/edit_inline/tabular_container.html' class PageAdmin(ViewAdmin): @@ -37,9 +46,15 @@ class PageAdmin(ViewAdmin): list_filter = ('template',) search_fields = ['title', 'contentlets__content'] inlines = [ContentletInline, ContentReferenceInline] + ViewAdmin.inlines + + def response_add(self, request, obj, post_url_continue='../%s/'): + # Shamelessly cribbed from django/contrib/auth/admin.py:143 + if '_addanother' not in request.POST and '_popup' not in request.POST: + request.POST['_continue'] = 1 + return super(PageAdmin, self).response_add(request, obj, post_url_continue) -class TemplateAdmin(admin.ModelAdmin): +class TemplateAdmin(TreeAdmin): prepopulated_fields = {'slug': ('name',)} fieldsets = ( (None, {