X-Git-Url: http://git.ithinksw.org/philo.git/blobdiff_plain/36409393a5b3cf09c6e6e808156e320c6cc7aa96..b8334054d908e8c49bdbd8ac28ab2c9e7b37a937:/admin/pages.py?ds=sidebyside diff --git a/admin/pages.py b/admin/pages.py index fe6f821..f9e96c0 100644 --- a/admin/pages.py +++ b/admin/pages.py @@ -1,11 +1,10 @@ +from django.conf import settings from django.contrib import admin from django import forms -from django.template import Template as DjangoTemplate -from philo.admin import widgets -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 TemplateForm, ContentletInlineFormSet, ContentReferenceInlineFormSet +from philo.admin.forms.containers import * class ContentletInline(admin.StackedInline): @@ -13,8 +12,13 @@ class ContentletInline(admin.StackedInline): extra = 0 max_num = 0 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): @@ -22,8 +26,13 @@ class ContentReferenceInline(admin.StackedInline): extra = 0 max_num = 0 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, { @@ -60,7 +75,6 @@ class TemplateAdmin(admin.ModelAdmin): save_on_top = True save_as = True list_display = ('__unicode__', 'slug', 'get_path',) - form = TemplateForm admin.site.register(Page, PageAdmin)