"""Django admin interface for the event app. It's the best way to add eventseries, or edit/delete events.""" from django.contrib import admin from django.utils.translation import gettext as _ from events.models import Event, Photo, Location class EventInline(admin.TabularInline): """To list events of an eventseries below the 'master event'""" model = Event fields = ('name', 'start', 'end') verbose_name_plural = _('Event Series') class EventAdmin(admin.ModelAdmin): """Admin Interface to list and edit events.""" list_display = ('name', 'start', 'end', 'location',) list_editable = ('start', 'end', 'location') readonly_fields = ('event_series',) date_hierarchy = 'start' search_fields = ('name', 'description') list_per_page = 50 inlines = (EventInline,) class LocationAdmin(admin.ModelAdmin): """Admin Interace to list and edit event locations.""" list_display = ('name', 'street_address', 'postal_code', 'locality') class PhotoAdmin(admin.ModelAdmin): """Admin Interface to list and edit photos of events.""" fields = ('image', 'event', 'name', 'description', ('photographer', 'created_date')) list_filter = ('event', 'on_startpage',) list_display = ('image', 'image', 'name', 'event', 'photographer', 'on_startpage') list_display_links = ('image',) list_editable = ('on_startpage', 'name', 'event', 'photographer') admin.site.register(Event, EventAdmin) admin.site.register(Photo, PhotoAdmin) admin.site.register(Location, LocationAdmin)