Refactor comments app to use mixins for comment functionality; update admin interfaces and add historical model fixes

This commit is contained in:
pacnpal
2025-02-08 16:33:55 -05:00
parent 75f5b07129
commit 03f9df4bab
21 changed files with 548 additions and 280 deletions

View File

@@ -1,19 +1,28 @@
from django.contrib import admin
from django.utils.html import format_html
from django.contrib.contenttypes.admin import GenericStackedInline
from .models import Photo
class PhotoInline(GenericStackedInline):
"""Inline admin for photos that can be added to any model."""
model = Photo
extra = 1
fields = ('image', 'caption', 'alt_text', 'is_primary')
classes = ('collapse',)
@admin.register(Photo)
class PhotoAdmin(admin.ModelAdmin):
list_display = ('thumbnail_preview', 'content_type', 'content_object', 'caption', 'is_primary', 'created_at')
list_filter = ('content_type', 'is_primary', 'created_at')
list_display = ('caption', 'content_type', 'object_id', 'is_primary', 'created_at')
list_filter = ('content_type', 'created_at', 'is_primary', 'is_approved')
search_fields = ('caption', 'alt_text')
readonly_fields = ('thumbnail_preview',)
ordering = ('content_type', 'object_id', '-is_primary')
readonly_fields = ('created_at', 'updated_at')
def thumbnail_preview(self, obj):
if obj.image:
return format_html(
'<img src="{}" style="max-height: 50px; max-width: 100px;" />',
obj.image.url
)
return "No image"
thumbnail_preview.short_description = 'Thumbnail'
fieldsets = (
('Image', {
'fields': ('image', 'caption', 'alt_text', 'is_primary', 'is_approved')
}),
('Metadata', {
'fields': ('content_type', 'object_id', 'created_at', 'updated_at'),
'classes': ('collapse',)
}),
)