spradio-server-django/savepointradio/profiles/admin.py
2019-11-28 22:35:51 -05:00

68 lines
1.6 KiB
Python

from django.contrib import admin
from .models import RadioProfile, SongRequest
class FavoriteInline(admin.TabularInline):
model = RadioProfile.favorites.through
verbose_name = 'favorite'
verbose_name_plural = 'favorites'
extra = 0
class RatingInline(admin.TabularInline):
model = RadioProfile.ratings.through
verbose_name = 'rating'
verbose_name_plural = 'ratings'
extra = 0
@admin.register(RadioProfile)
class ProfileAdmin(admin.ModelAdmin):
# Edit Form display
readonly_fields = ('created_date', 'modified_date')
fieldsets = (
('Main', {
'fields': ('user',)
}),
('Stats', {
'classes': ('collapse',),
'fields': ('created_date', 'modified_date')
})
)
can_delete = False
verbose_name = 'profile'
verbose_name_plural = 'profiles'
extra = 0
inlines = [FavoriteInline, RatingInline]
@admin.register(SongRequest)
class RequestAdmin(admin.ModelAdmin):
# Detail List display
list_display = ('get_user',
'song',
'created_date',
'queued_at',
'played_at')
search_fields = ['song', 'profile']
# Edit Form display
readonly_fields = (
'modified_date',
'queued_at',
'played_at'
)
raw_id_fields = ('song',)
verbose_name = 'request'
verbose_name_plural = 'requests'
extra = 0
def get_user(self, obj):
'''Returns the username from the profile.'''
return obj.profile.user
get_user.admin_order_field = 'profile'
get_user.short_description = 'User Name'