view band/admin.py @ 190:55c4d2c0ee27

Center of the Surf Cover. Update copyright date.
author Brian Neal <bgneal@gmail.com>
date Wed, 04 Apr 2018 19:30:41 -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)