view gigs/admin.py @ 176:5e58f89d3dd8

New band photo on home page. Also added Ancient Winds album cover as a headline.
author Brian Neal <bgneal@gmail.com>
date Thu, 20 Aug 2015 19:49:50 -0500
parents 6c7dd8bda890
children
line wrap: on
line source
"""
Automatic admin definitions for the gigs application.

"""
from django.contrib import admin

from gigs.models import Band, City, Country, Gig, State, Venue


class CityInline(admin.TabularInline):
    model = City


class CityAdmin(admin.ModelAdmin):
    list_display = ['name', 'state', 'country']
    list_filter = ['state']
    search_fields = ['name']

    def get_queryset(self, request):
        qs = super(CityAdmin, self).get_queryset(request)
        return qs.select_related('state', 'country')


class StateAdmin(admin.ModelAdmin):
    inlines = [CityInline]


class VenueAdmin(admin.ModelAdmin):
    list_filter = ['city__name']
    list_display = ['name', 'city']
    search_fields = ['name']

    def get_queryset(self, request):
        qs = super(VenueAdmin, self).get_queryset(request)
        return qs.select_related('city', 'city__state', 'city__country')


class BandAdmin(admin.ModelAdmin):
    search_fields = ['name']


class GigAdmin(admin.ModelAdmin):
    list_filter = ['date']
    save_on_top = True
    filter_horizontal = ['bands']

    def get_queryset(self, request):
        qs = super(GigAdmin, self).get_queryset(request)
        return qs.select_related('venue')


admin.site.register(Band, BandAdmin)
admin.site.register(City, CityAdmin)
admin.site.register(Country)
admin.site.register(Gig, GigAdmin)
admin.site.register(State, StateAdmin)
admin.site.register(Venue, VenueAdmin)