view band/admin.py @ 174:e3eb365ab5a0

Put Ancient Winds cover on home page.
author Brian Neal <bgneal@gmail.com>
date Wed, 19 Aug 2015 20:09:35 -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)