view mysite/band/admin.py @ 28:a404f93a68d3

Decrease by 2 orders of magnitude the number of queries needed to generate the gigs page for the Madeira.
author Brian Neal <bgneal@gmail.com>
date Thu, 31 Mar 2011 00:14:34 +0000
parents e602b5302b94
children 25e00d1b99bf
line wrap: on
line source
#######################################################################
#
# PyBand Copyright (C) 2008 by Brian Neal
#
#######################################################################

from django.contrib import admin

from mysite.band.models import Article
from mysite.band.models import Album
from mysite.band.models import Album_Merchant
from mysite.band.models import Album_Track
from mysite.band.models import Band
from mysite.band.models import City
from mysite.band.models import Country
from mysite.band.models import Fan
from mysite.band.models import Gear
from mysite.band.models import Gig
from mysite.band.models import Label_Release
from mysite.band.models import Member
from mysite.band.models import Merchandise
from mysite.band.models import Mp3
from mysite.band.models import Mp3_Set
from mysite.band.models import News
from mysite.band.models import Record_Label
from mysite.band.models import SiteConfig
from mysite.band.models import State
from mysite.band.models import Venue
from mysite.band.models import Video
from mysite.band.models import Video_Set

#######################################################################

admin.site.register(Video)

#######################################################################

class SiteConfigAdmin(admin.ModelAdmin):
   list_display = ('band_name', 'url', 'contact_email')
   fieldsets = (
         (None, { 'fields' : ('band_name', 'url', 'contact_email', 'intro_text', 'ordering_info',
            'intro_photo') }),
      )

admin.site.register(SiteConfig, SiteConfigAdmin)

#######################################################################

class GearInline(admin.TabularInline):
   model = Gear

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

admin.site.register(Gear, GearAdmin)

#######################################################################

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

admin.site.register(Member, MemberAdmin)

#######################################################################

class CityInline(admin.TabularInline):
   model = City

class CityAdmin(admin.ModelAdmin):
   list_display = ('name', 'state', 'country')
   list_filter = ('state', )
   search_fields = ('name', )

admin.site.register(City, CityAdmin)

#######################################################################

admin.site.register(Country)

#######################################################################

class StateAdmin(admin.ModelAdmin):
   inlines = [
         CityInline,
   ]

admin.site.register(State, StateAdmin)

#######################################################################

class VenueAdmin(admin.ModelAdmin):
   list_filter = ('city', )
   list_display = ('name', 'city', )
   search_fields = ('name', )

admin.site.register(Venue, VenueAdmin)

#######################################################################

class BandAdmin(admin.ModelAdmin):
   search_fields = ('name', )

admin.site.register(Band, BandAdmin)

#######################################################################

class GigAdmin(admin.ModelAdmin):
   list_filter = ('date', 'venue')
   save_on_top = True
   filter_horizontal = ('bands', )

admin.site.register(Gig, GigAdmin)

#######################################################################

class NewsAdmin(admin.ModelAdmin):
   save_on_top = True
   list_filter = ('date', )
   list_display = ('date', 'title')
   search_fields = ('text', 'title')

admin.site.register(News, NewsAdmin)

#######################################################################

class ArticleAdmin(admin.ModelAdmin):
   save_on_top = True
   list_filter = ('date', )
   list_display = ('title', 'date')
   search_fields = ('text', 'title')

admin.site.register(Article, ArticleAdmin)

#######################################################################

class Mp3Inline(admin.TabularInline):
   model = Mp3

class Mp3Admin(admin.ModelAdmin):
   prepopulated_fields = {'slug' : ('title', 'desc')}

admin.site.register(Mp3, Mp3Admin)

#######################################################################

class Mp3_SetAdmin(admin.ModelAdmin):
   list_filter = ('date', )
   list_display = ('title', 'date')
   inlines = [
         Mp3Inline,
   ]

admin.site.register(Mp3_Set, Mp3_SetAdmin)

#######################################################################

class VideoInline(admin.TabularInline):
   model = Video

class Video_SetAdmin(admin.ModelAdmin):
   list_filter = ('date', )
   list_display = ('title', 'date')
   inlines = [
         VideoInline,
   ]

admin.site.register(Video_Set, Video_SetAdmin)

#######################################################################

class Album_TrackInline(admin.TabularInline):
   model = Album_Track

class Album_TrackAdmin(admin.ModelAdmin):
   list_display = ('track_name', 'album')
   list_filter = ('album', )

admin.site.register(Album_Track, Album_TrackAdmin)

#######################################################################

class Label_ReleaseInline(admin.TabularInline):
   model = Label_Release

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

admin.site.register(Label_Release, Label_ReleaseAdmin)

#######################################################################

class Record_LabelAdmin(admin.ModelAdmin):
   inlines = [
         Label_ReleaseInline,
   ]

admin.site.register(Record_Label, Record_LabelAdmin)

#######################################################################

class Album_MerchantInline(admin.TabularInline):
   model = Album_Merchant

class Album_MerchantAdmin(admin.ModelAdmin):
   list_display = ('name', 'album')
   list_filter = ('album', )

admin.site.register(Album_Merchant, Album_MerchantAdmin)

#######################################################################

class AlbumAdmin(admin.ModelAdmin):
   save_on_top = True
   inlines = [
         Album_TrackInline,
         Label_ReleaseInline,
         Album_MerchantInline,
   ]

admin.site.register(Album, AlbumAdmin)

#######################################################################

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

admin.site.register(Merchandise, MerchandiseAdmin)

#######################################################################

class FanAdmin(admin.ModelAdmin):
   list_display = ('name', 'email', 'current_status')
   search_fields = ('name', 'email')

admin.site.register(Fan, FanAdmin)

#######################################################################