from django.contrib import admin
from modeltranslation.admin import TranslationAdmin
from .models import PortfolioItem, PortfolioCategory, PortfolioGalleryImage

# Inline for gallery images associated with a portfolio item
class GalleryInline(admin.TabularInline):
    model = PortfolioGalleryImage
    extra = 1  # Allow adding one extra image by default

# Admin configuration for PortfolioItem
class PortfolioItemAdmin(TranslationAdmin):
    list_display = ['title', 'category', 'date']  # Columns in list view
    prepopulated_fields = {"slug": ("title",)}  # Auto-fill slug from title
    inlines = [GalleryInline]  # Show gallery images inline
    search_fields = ['title', 'tags', 'client']  # Enable search by these fields
    list_filter = ['category', 'date']  # Filter sidebar

    fieldsets = (
        (None, {
            'fields': ('title', 'subtitle', 'slug', 'category', 'tags', 'description', 'features')
        }),
        ('Additional Info', {
            'fields': ('date', 'client', 'website', 'badge', 'main_image')
        }),
    )

# Admin configuration for PortfolioCategory
class PortfolioCategoryAdmin(TranslationAdmin):
    prepopulated_fields = {"slug": ("name",)}
    list_display = ['name', 'slug']

# Register models with admin site
admin.site.register(PortfolioCategory, PortfolioCategoryAdmin)
admin.site.register(PortfolioItem, PortfolioItemAdmin)
