From: Joseph Spiros Date: Wed, 16 Jun 2010 14:41:39 +0000 (-0400) Subject: Merge branch 'admin-cleanup' X-Git-Tag: philo-0.9~79 X-Git-Url: http://git.ithinksw.org/philo.git/commitdiff_plain/e18b86f47054850e9f49c1cb7aaecd8fdf753e4d?hp=-c Merge branch 'admin-cleanup' * admin-cleanup: Making Attribute and Relationship inlines collapsible with custom template. Hiding save_on_top on the Page add form template, and adding template documentation to Page change forms when the page's selected template provides it. Pages now have a custom add form template which notifies the user that they must select a template and save before containers will be available. Implementing NodeAdmin and subclasses for built-in Node types. --- e18b86f47054850e9f49c1cb7aaecd8fdf753e4d diff --combined admin.py index 1ed5586,1a9125e..178a904 --- a/admin.py +++ b/admin.py @@@ -7,7 -7,7 +7,7 @@@ 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 * class AttributeInline(generic.GenericTabularInline): @@@ -15,7 -15,7 +15,7 @@@ ct_fk_field = 'entity_object_id' model = Attribute extra = 1 - classes = ('collapse-closed',) + template = 'admin/philo/edit_inline/tabular_collapse.html' allow_add = True @@@ -24,7 -24,7 +24,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 @@@ -45,26 -45,8 +45,8 @@@ class CollectionAdmin(admin.ModelAdmin) inlines = [CollectionMemberInline] - class TemplateAdmin(admin.ModelAdmin): - prepopulated_fields = {'slug': ('name',)} - fieldsets = ( - (None, { - 'fields': ('parent', 'name', 'slug') - }), - ('Documentation', { - 'classes': ('collapse', 'collapse-closed'), - 'fields': ('documentation',) - }), - (None, { - 'fields': ('code',) - }), - ('Advanced', { - 'classes': ('collapse','collapse-closed'), - 'fields': ('mimetype',) - }), - ) - save_on_top = True - save_as = True + class NodeAdmin(EntityAdmin): + pass class ModelLookupWidget(forms.TextInput): @@@ -94,15 -76,41 +76,41 @@@ return mark_safe(output) - class PageAdmin(EntityAdmin): + class RedirectAdmin(NodeAdmin): + fieldsets = ( + (None, { + 'fields': ('slug', 'target', 'status_code') + }), + ('URL/Tree/Hierarchy', { + 'classes': ('collapse', 'collapse-closed'), + 'fields': ('parent',) + }), + ) + + + class FileAdmin(NodeAdmin): + prepopulated_fields = {'slug': ('file',)} + fieldsets = ( + (None, { + 'fields': ('file', 'slug', 'mimetype') + }), + ('URL/Tree/Hierarchy', { + 'classes': ('collapse', 'collapse-closed'), + 'fields': ('parent',) + }), + ) + + + 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') + 'fields': ('parent',) }), ) list_display = ('title', 'path', 'template') @@@ -112,8 -120,11 +120,11 @@@ 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), { @@@ -173,8 -184,30 +184,30 @@@ contentreference.save() + class TemplateAdmin(admin.ModelAdmin): + prepopulated_fields = {'slug': ('name',)} + fieldsets = ( + (None, { + 'fields': ('parent', 'name', 'slug') + }), + ('Documentation', { + 'classes': ('collapse', 'collapse-closed'), + 'fields': ('documentation',) + }), + (None, { + 'fields': ('code',) + }), + ('Advanced', { + 'classes': ('collapse','collapse-closed'), + 'fields': ('mimetype',) + }), + ) + save_on_top = True + save_as = True + + admin.site.register(Collection, CollectionAdmin) - admin.site.register(Redirect) - admin.site.register(File) + admin.site.register(Redirect, RedirectAdmin) + admin.site.register(File, FileAdmin) admin.site.register(Page, PageAdmin) admin.site.register(Template, TemplateAdmin)