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