Added an abstract TargetURLModel to handle issues related to targeting a node, a...
[philo.git] / admin / nodes.py
1 from django.contrib import admin
2 from philo.admin.base import EntityAdmin, TreeEntityAdmin, COLLAPSE_CLASSES
3 from philo.models import Node, Redirect, File
4
5
6 class NodeAdmin(TreeEntityAdmin):
7         list_display = ('slug', 'view', 'accepts_subpath')
8         
9         def accepts_subpath(self, obj):
10                 return obj.accepts_subpath
11         accepts_subpath.boolean = True
12
13
14 class ViewAdmin(EntityAdmin):
15         pass
16
17
18 class RedirectAdmin(ViewAdmin):
19         fieldsets = (
20                 (None, {
21                         'fields': ('target_node', 'url_or_subpath', 'status_code')
22                 }),
23                 ('Advanced', {
24                         'fields': ('reversing_parameters',),
25                         'classes': COLLAPSE_CLASSES
26                 })
27         )
28         list_display = ('target_url', 'status_code', 'target_node', 'url_or_subpath')
29         list_filter = ('status_code',)
30         raw_id_fields = ['target_node']
31         related_field_lookups = {
32                 'fk': ['target_node']
33         }
34
35
36 class FileAdmin(ViewAdmin):
37         fieldsets = (
38                 (None, {
39                         'fields': ('file', 'mimetype')
40                 }),
41         )
42         list_display = ('mimetype', 'file')
43
44
45 admin.site.register(Node, NodeAdmin)
46 admin.site.register(Redirect, RedirectAdmin)
47 admin.site.register(File, FileAdmin)