Added/tweaked docs for exceptions, middleware, and signals. Minor formatting tweaks...
[philo.git] / philo / contrib / julian / admin.py
1 from django.contrib import admin
2
3 from philo.admin import EntityAdmin, COLLAPSE_CLASSES
4 from philo.contrib.julian.models import Location, Event, Calendar, CalendarView
5
6
7 class LocationAdmin(EntityAdmin):
8         pass
9
10
11 class EventAdmin(EntityAdmin):
12         fieldsets = (
13                 (None, {
14                         'fields': ('name', 'slug', 'description', 'tags', 'owner')
15                 }),
16                 ('Location', {
17                         'fields': ('location_content_type', 'location_pk')
18                 }),
19                 ('Time', {
20                         'fields': (('start_date', 'start_time'), ('end_date', 'end_time'),),
21                 }),
22                 ('Advanced', {
23                         'fields': ('parent_event', 'site',),
24                         'classes': COLLAPSE_CLASSES
25                 })
26         )
27         filter_horizontal = ['tags']
28         raw_id_fields = ['parent_event']
29         related_lookup_fields = {
30                 'fk': raw_id_fields,
31                 'generic': [["location_content_type", "location_pk"]]
32         }
33         prepopulated_fields = {'slug': ('name',)}
34
35
36 class CalendarAdmin(EntityAdmin):
37         prepopulated_fields = {'slug': ('name',)}
38         filter_horizontal = ['events']
39         fieldsets = (
40                 (None, {
41                         'fields': ('name', 'description', 'events')
42                 }),
43                 ('Advanced', {
44                         'fields': ('slug', 'site', 'language',),
45                         'classes': COLLAPSE_CLASSES
46                 })
47         )
48
49
50 class CalendarViewAdmin(EntityAdmin):
51         fieldsets = (
52                 (None, {
53                         'fields': ('calendar',)
54                 }),
55                 ('Pages', {
56                         'fields': ('index_page', 'event_detail_page')
57                 }),
58                 ('General Settings', {
59                         'fields': ('tag_permalink_base', 'owner_permalink_base', 'location_permalink_base', 'events_per_page')
60                 }),
61                 ('Event List Pages', {
62                         'fields': ('timespan_page', 'tag_page', 'location_page', 'owner_page'),
63                         'classes': COLLAPSE_CLASSES
64                 }),
65                 ('Archive Pages', {
66                         'fields': ('location_archive_page', 'tag_archive_page', 'owner_archive_page'),
67                         'classes': COLLAPSE_CLASSES
68                 }),
69                 ('Feed Settings', {
70                         'fields': ( 'feeds_enabled', 'feed_suffix', 'feed_type', 'item_title_template', 'item_description_template',),
71                         'classes': COLLAPSE_CLASSES
72                 })
73         )
74         raw_id_fields = ('index_page', 'event_detail_page', 'timespan_page', 'tag_page', 'location_page', 'owner_page', 'location_archive_page', 'tag_archive_page', 'owner_archive_page', 'item_title_template', 'item_description_template',)
75         related_lookup_fields = {'fk': raw_id_fields}
76
77
78 admin.site.register(Location, LocationAdmin)
79 admin.site.register(Event, EventAdmin)
80 admin.site.register(Calendar, CalendarAdmin)
81 admin.site.register(CalendarView, CalendarViewAdmin)