view band/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 e2868ad47a1e
children
line wrap: on
line source
"""
Automatic admin definitions for the band models.

"""
from django.contrib import admin

from band.models import Album
from band.models import AlbumMerchant
from band.models import AlbumTrack
from band.models import Gear
from band.models import LabelRelease
from band.models import Member
from band.models import Merchandise
from band.models import RecordLabel


class GearInline(admin.TabularInline):
    model = Gear


class GearAdmin(admin.ModelAdmin):
    list_display = ['item', 'member']
    list_filter = ['member']


class MemberAdmin(admin.ModelAdmin):
    list_display = ['name', 'instrument', 'is_active']
    inlines = [GearInline]


class AlbumTrackInline(admin.TabularInline):
    model = AlbumTrack


class AlbumTrackAdmin(admin.ModelAdmin):
    list_display = ['track_name', 'album']
    list_filter = ['album']


class LabelReleaseInline(admin.TabularInline):
    model = LabelRelease


class LabelReleaseAdmin(admin.ModelAdmin):
    list_display = ['catalog_number', 'album', 'record_label', 'release_date']
    list_filter = ['record_label', 'album']


class RecordLabelAdmin(admin.ModelAdmin):
    inlines = [LabelReleaseInline]


class AlbumMerchantInline(admin.TabularInline):
    model = AlbumMerchant


class AlbumMerchantAdmin(admin.ModelAdmin):
    list_display = ['name', 'album']
    list_filter = ['album']


class AlbumAdmin(admin.ModelAdmin):
    save_on_top = True
    inlines = [
        AlbumTrackInline,
        LabelReleaseInline,
        AlbumMerchantInline,
    ]


class MerchandiseAdmin(admin.ModelAdmin):
    list_display = ['name', 'price', 'in_stock']
    list_filter = ['in_stock']


admin.site.register(Gear, GearAdmin)
admin.site.register(Member, MemberAdmin)
admin.site.register(AlbumTrack, AlbumTrackAdmin)
admin.site.register(LabelRelease, LabelReleaseAdmin)
admin.site.register(RecordLabel, RecordLabelAdmin)
admin.site.register(AlbumMerchant, AlbumMerchantAdmin)
admin.site.register(Album, AlbumAdmin)
admin.site.register(Merchandise, MerchandiseAdmin)