from django.contrib import admin
from .models import Image
from .utils import get_used_in_posts_html
from django.utils.html import format_html

@admin.register(Image)
class ImageAdmin(admin.ModelAdmin):
    list_display = ['id', 'image_preview', 'created_by', 'used_in_posts', 'created_at']
    search_fields = ['created_by__username']
    list_filter = ['created_at']
    ordering = ['-created_at']
    readonly_fields = ['created_at']

    def image_preview(self, obj):
        if obj.image:
            return format_html('<img src="{}" width="50" height="50" />', obj.image.url)
        return "No image"
    image_preview.short_description = 'Image'
    image_preview.allow_tags = True

    def used_in_posts(self, obj):
        return get_used_in_posts_html(obj)
    used_in_posts.short_description = 'Utilisé dans les posts'
    used_in_posts.allow_tags = True