view band/admin.py @ 151:762e46d0bb4a

urlquote photologue filenames when building URLs.
author Brian Neal <bgneal@gmail.com>
date Wed, 30 Jul 2014 20:07:21 -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)