47 lines
1.4 KiB
Python
47 lines
1.4 KiB
Python
from django.contrib import admin
|
|
from django.utils.translation import gettext_lazy as _
|
|
from photologue.admin import GalleryAdmin as GalleryAdminDefault
|
|
from photologue.admin import PhotoAdmin as PhotoAdminDefault
|
|
from photologue.models import Gallery, Photo
|
|
|
|
from .models import GalleryExtended, PhotoExtended
|
|
|
|
|
|
class GalleryExtendedInline(admin.StackedInline):
|
|
model = GalleryExtended
|
|
can_delete = False
|
|
|
|
|
|
class GalleryAdmin(GalleryAdminDefault):
|
|
"""
|
|
Define our new one-to-one model as an inline of Photologue's Gallery
|
|
model.
|
|
"""
|
|
inlines = [GalleryExtendedInline, ]
|
|
|
|
|
|
class PhotoExtendedInline(admin.StackedInline):
|
|
model = PhotoExtended
|
|
can_delete = True
|
|
|
|
|
|
class PhotoAdmin(PhotoAdminDefault):
|
|
"""
|
|
Define our new one-to-one model as an inline of Photologue's Photo
|
|
model.
|
|
"""
|
|
inlines = [PhotoExtendedInline, ]
|
|
list_display = ('title', 'date_taken', 'date_added',
|
|
'is_public', 'view_count', 'admin_thumbnail', 'get_owner')
|
|
list_filter = ['date_added', 'is_public', 'extended__owner']
|
|
|
|
def get_owner(self, obj):
|
|
if not hasattr(obj, 'extended'):
|
|
return "No owner"
|
|
return obj.extended.owner.username
|
|
get_owner.admin_order_field = 'owner'
|
|
get_owner.short_description = _('owner')
|
|
|
|
|
|
admin.site.register(Gallery, GalleryAdmin)
|
|
admin.site.register(Photo, PhotoAdmin)
|