Remerged clone to push to it
authormelinath <stephen.r.burrows@gmail.com>
Wed, 16 Jun 2010 18:56:16 +0000 (14:56 -0400)
committermelinath <stephen.r.burrows@gmail.com>
Wed, 16 Jun 2010 18:56:16 +0000 (14:56 -0400)
1  2 
admin.py

diff --combined admin.py
+++ b/admin.py
@@@ -7,20 -7,17 +7,20 @@@ from django.utils.translation import ug
  from django.utils.safestring import mark_safe
  from django.utils.html import escape
  from django.utils.text import truncate_words
 -from models import *
 +from philo.models import *
  from django.core.exceptions import ValidationError, ObjectDoesNotExist
  from validators import TreeParentValidator, TreePositionValidator
  
  
 +COLLAPSE_CLASSES = ('collapse', 'collapse-closed', 'closed',)
 +
 +
  class AttributeInline(generic.GenericTabularInline):
        ct_field = 'entity_content_type'
        ct_fk_field = 'entity_object_id'
        model = Attribute
        extra = 1
 -      classes = ('collapse-closed',)
 +      template = 'admin/philo/edit_inline/tabular_collapse.html'
        allow_add = True
  
  
@@@ -29,7 -26,7 +29,7 @@@ class RelationshipInline(generic.Generi
        ct_fk_field = 'entity_object_id'
        model = Relationship
        extra = 1
 -      classes = ('collapse-closed',)
 +      template = 'admin/philo/edit_inline/tabular_collapse.html'
        allow_add = True
  
  
@@@ -42,9 -39,8 +42,9 @@@ class CollectionMemberInline(admin.Tabu
        fk_name = 'collection'
        model = CollectionMember
        extra = 1
 -      classes = ('collapse-closed',)
 +      classes = COLLAPSE_CLASSES
        allow_add = True
 +      fields = ('member_content_type', 'member_object_id', 'index',)
  
  
  class CollectionAdmin(admin.ModelAdmin):
@@@ -94,14 -90,14 +94,14 @@@ class TemplateAdmin(admin.ModelAdmin)
                        'fields': ('parent', 'name', 'slug')
                }),
                ('Documentation', {
 -                      'classes': ('collapse', 'collapse-closed'),
 +                      'classes': COLLAPSE_CLASSES,
                        'fields': ('documentation',)
                }),
                (None, {
                        'fields': ('code',)
                }),
                ('Advanced', {
 -                      'classes': ('collapse','collapse-closed'),
 +                      'classes': COLLAPSE_CLASSES,
                        'fields': ('mimetype',)
                }),
        )
@@@ -161,50 -157,15 +161,50 @@@ class FileAdminForm(NodeForm)
                model=File
  
  
 -class PageAdmin(EntityAdmin):
 +class NodeAdmin(EntityAdmin):
 +      pass
 +
 +
 +class RedirectAdmin(NodeAdmin):
 +      fieldsets = (
 +              (None, {
 +                      'fields': ('slug', 'target', 'status_code')
 +              }),
 +              ('URL/Tree/Hierarchy', {
 +                      'classes': COLLAPSE_CLASSES,
 +                      'fields': ('parent',)
 +              }),
 +      )
 +      list_display=('slug', 'target', 'path', 'status_code',)
 +      list_filter=('status_code',)
 +      form = RedirectAdminForm
 +
 +
 +class FileAdmin(NodeAdmin):
 +      prepopulated_fields = {'slug': ('file',)}
 +      fieldsets = (
 +              (None, {
 +                      'fields': ('file', 'slug', 'mimetype')
 +              }),
 +              ('URL/Tree/Hierarchy', {
 +                      'classes': COLLAPSE_CLASSES,
 +                      'fields': ('parent',)
 +              }),
 +      )
 +      form=FileAdminForm
 +      list_display=('slug', 'mimetype', 'path', 'file',)
 +
 +
 +class PageAdmin(NodeAdmin):
 +      add_form_template = 'admin/philo/page/add_form.html'
        prepopulated_fields = {'slug': ('title',)}
        fieldsets = (
                (None, {
 -                      'fields': ('title', 'template')
 +                      'fields': ('title', 'slug', 'template')
                }),
                ('URL/Tree/Hierarchy', {
 -                      'classes': ('collapse', 'collapse-closed'),
 -                      'fields': ('parent', 'slug')
 +                      'classes': COLLAPSE_CLASSES,
 +                      'fields': ('parent',)
                }),
        )
        list_display = ('title', 'path', 'template')
        def get_fieldsets(self, request, obj=None, **kwargs):
                fieldsets = list(self.fieldsets)
                if obj: # if no obj, creating a new page, thus no template set, thus no containers
 -                      page = obj
 -                      template = page.template
 +                      template = obj.template
 +                      if template.documentation:
 +                              fieldsets.append(('Template Documentation', {
 +                                      'description': template.documentation
 +                              }))
                        contentlet_containers, contentreference_containers = template.containers
                        for container_name in contentlet_containers:
                                fieldsets.append((('Container: %s' % container_name), {
                for container_name, container_content_type in contentreference_containers:
                        if ('contentreference_container_%s' % container_name) in form.cleaned_data:
                                content = form.cleaned_data[('contentreference_container_%s' % container_name)]
 +                              if content == None:
 +                                      continue
                                contentreference, created = page.contentreferences.get_or_create(name=container_name, defaults={'content': content})
                                if not created:
                                        contentreference.content = content
                                        contentreference.save()
  
  
+ class RedirectAdmin(admin.ModelAdmin):
+       list_display=('slug', 'target', 'path', 'status_code',)
+       list_filter=('status_code',)
+       form = RedirectAdminForm
+ class FileAdmin(admin.ModelAdmin):
+       form=FileAdminForm
+       list_display=('slug', 'mimetype', 'path', 'file',)
  admin.site.register(Collection, CollectionAdmin)
  admin.site.register(Redirect, RedirectAdmin)
  admin.site.register(File, FileAdmin)