1 from django.contrib import admin
2 from philo.admin.base import EntityAdmin, TreeEntityAdmin, COLLAPSE_CLASSES
3 from philo.models import Node, Redirect, File, NodeNavigationOverride
4 from philo.forms import NodeWithOverrideForm, NodeOverrideInlineFormSet
7 class ChildNavigationOverrideInline(admin.StackedInline):
9 model = NodeNavigationOverride
10 formset = NodeOverrideInlineFormSet
11 sortable_field_name = 'order'
12 verbose_name = 'child'
13 verbose_name_plural = 'children'
18 class NodeAdmin(TreeEntityAdmin):
19 form = NodeWithOverrideForm
22 'fields': ('parent', 'slug', 'view_content_type', 'view_object_id'),
24 ('Navigation Overrides', {
25 'fields': ('title', 'url', 'child_navigation'),
26 'classes': COLLAPSE_CLASSES
29 inlines = [ChildNavigationOverrideInline] + TreeEntityAdmin.inlines
32 class ViewAdmin(EntityAdmin):
36 class RedirectAdmin(ViewAdmin):
39 'fields': ('target', 'status_code')
42 list_display = ('target', 'status_code')
43 list_filter = ('status_code',)
46 class FileAdmin(ViewAdmin):
49 'fields': ('file', 'mimetype')
52 list_display = ('mimetype', 'file')
55 admin.site.register(Node, NodeAdmin)
56 admin.site.register(Redirect, RedirectAdmin)
57 admin.site.register(File, FileAdmin)