Added an abstract TargetURLModel to handle issues related to targeting a node, a...
[philo.git] / admin / nodes.py
index 0fac7ad..dc5ca60 100644 (file)
@@ -1,32 +1,14 @@
 from django.contrib import admin
 from philo.admin.base import EntityAdmin, TreeEntityAdmin, COLLAPSE_CLASSES
-from philo.models import Node, Redirect, File, NodeNavigationOverride
-from philo.forms import NodeWithOverrideForm, NodeOverrideInlineFormSet
-
-
-class ChildNavigationOverrideInline(admin.StackedInline):
-       fk_name = 'parent'
-       model = NodeNavigationOverride
-       formset = NodeOverrideInlineFormSet
-       sortable_field_name = 'order'
-       verbose_name = 'child'
-       verbose_name_plural = 'children'
-       extra = 0
-       max_num = 0
+from philo.models import Node, Redirect, File
 
 
 class NodeAdmin(TreeEntityAdmin):
-       form = NodeWithOverrideForm
-       fieldsets = (
-               (None, {
-                       'fields': ('parent', 'slug', 'view_content_type', 'view_object_id'),
-               }),
-               ('Navigation Overrides', {
-                       'fields': ('title', 'url', 'child_navigation'),
-                       'classes': COLLAPSE_CLASSES
-               })
-       )
-       inlines = [ChildNavigationOverrideInline] + TreeEntityAdmin.inlines
+       list_display = ('slug', 'view', 'accepts_subpath')
+       
+       def accepts_subpath(self, obj):
+               return obj.accepts_subpath
+       accepts_subpath.boolean = True
 
 
 class ViewAdmin(EntityAdmin):
@@ -36,11 +18,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_field_lookups = {
+               'fk': ['target_node']
+       }
 
 
 class FileAdmin(ViewAdmin):