view gigs/admin.py @ 119:685e14392326

Bootstrap: style pagination.
author Brian Neal <bgneal@gmail.com>
date Sat, 26 Oct 2013 16:20:49 -0500
parents e2868ad47a1e
children 6c7dd8bda890
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 queryset(self, request):
        qs = super(CityAdmin, self).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 queryset(self, request):
        qs = super(VenueAdmin, self).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 queryset(self, request):
        qs = super(GigAdmin, self).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)