Merge branch 'master' of git://github.com/melinath/philo
[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         related_lookup_fields = {
9                 'fk': [],
10                 'm2m': [],
11                 'generic': [['view_content_type', 'view_object_id']]
12         }
13         
14         def accepts_subpath(self, obj):
15                 return obj.accepts_subpath
16         accepts_subpath.boolean = True
17
18
19 class ViewAdmin(EntityAdmin):
20         pass
21
22
23 class RedirectAdmin(ViewAdmin):
24         fieldsets = (
25                 (None, {
26                         'fields': ('target_node', 'url_or_subpath', 'status_code')
27                 }),
28                 ('Advanced', {
29                         'fields': ('reversing_parameters',),
30                         'classes': COLLAPSE_CLASSES
31                 })
32         )
33         list_display = ('target_url', 'status_code', 'target_node', 'url_or_subpath')
34         list_filter = ('status_code',)
35         raw_id_fields = ['target_node']
36         related_lookup_fields = {
37                 'fk': raw_id_fields
38         }
39
40
41 class FileAdmin(ViewAdmin):
42         fieldsets = (
43                 (None, {
44                         'fields': ('file', 'mimetype')
45                 }),
46         )
47         list_display = ('mimetype', 'file')
48
49
50 admin.site.register(Node, NodeAdmin)
51 admin.site.register(Redirect, RedirectAdmin)
52 admin.site.register(File, FileAdmin)