X-Git-Url: http://git.ithinksw.org/philo.git/blobdiff_plain/46fdca9049d4b7806bc4d6ec33973a3fc19153c4..82b08f79564159d7acbcaf255ed1ac1fb4882e64:/admin/nodes.py?ds=sidebyside diff --git a/admin/nodes.py b/admin/nodes.py index 093537e..e2a9c9d 100644 --- a/admin/nodes.py +++ b/admin/nodes.py @@ -1,10 +1,24 @@ from django.contrib import admin -from philo.admin.base import EntityAdmin +from philo.admin.base import EntityAdmin, TreeEntityAdmin, COLLAPSE_CLASSES from philo.models import Node, Redirect, File - - -class NodeAdmin(EntityAdmin): - pass +from mptt.admin import MPTTModelAdmin + + +class NodeAdmin(TreeEntityAdmin): + list_display = ('slug', 'view', 'accepts_subpath') + raw_id_fields = ('parent',) + related_lookup_fields = { + 'fk': raw_id_fields, + 'm2m': [], + 'generic': [['view_content_type', 'view_object_id']] + } + + def accepts_subpath(self, obj): + return obj.accepts_subpath + accepts_subpath.boolean = True + + def formfield_for_foreignkey(self, db_field, request, **kwargs): + return super(MPTTModelAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs) class ViewAdmin(EntityAdmin): @@ -14,11 +28,19 @@ class ViewAdmin(EntityAdmin): class RedirectAdmin(ViewAdmin): fieldsets = ( (None, { - 'fields': ('target', 'status_code') + 'fields': ('target_node', 'url_or_subpath', 'status_code') }), + ('Advanced', { + 'fields': ('reversing_parameters',), + 'classes': COLLAPSE_CLASSES + }) ) - list_display = ('target', 'status_code') + list_display = ('target_url', 'status_code', 'target_node', 'url_or_subpath') list_filter = ('status_code',) + raw_id_fields = ['target_node'] + related_lookup_fields = { + 'fk': raw_id_fields + } class FileAdmin(ViewAdmin):