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, PhotoEffect, PhotoSize, Watermark 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, ] autocomplete_fields = ['photos', ] search_fields = ['title', ] 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.unregister(Gallery) admin.site.unregister(Photo) admin.site.unregister(PhotoEffect) admin.site.unregister(PhotoSize) admin.site.unregister(Watermark) admin.site.register(Gallery, GalleryAdmin) admin.site.register(Photo, PhotoAdmin)