Merge branch 'core-1.3-updates' into release
[philo.git] / admin / pages.py
index fe6f821..f9e96c0 100644 (file)
@@ -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)