from django.contrib import admin from django.utils.safestring import mark_safe from portfolio.models import Portfolio, Category # Register your models here. class CategoryAdmin(admin.ModelAdmin): list_display = ('title', 'parent_category', 'category_image', 'is_active', 'order', 'slug', 'created_at') list_filter = ('is_active', 'created_at', 'parent') search_fields = ('title', 'slug', 'keywords', 'description') list_editable = ('is_active', 'order') readonly_fields = ('created_at', 'updated_at') prepopulated_fields = {'slug': ('title',)} fieldsets = ( ('Genel Bilgiler', { 'fields': ('title', 'parent', 'slug') }), ('SEO & Açıklama', { 'fields': ('keywords', 'description') }), ('Görsel', { 'fields': ('image',) }), ('Ayarlar', { 'fields': ('order', 'is_active') }), ('Tarihler', { 'fields': ('created_at', 'updated_at'), 'classes': ('collapse',) }), ) class Meta: model = Category def parent_category(self, obj): if obj.parent: return obj.parent.title return "Ana Kategori" parent_category.short_description = 'Üst Kategori' def category_image(self, obj): if obj.image: return mark_safe( ''.format( obj.image.url, obj.title)) return mark_safe('Resim Yok') category_image.short_description = 'Görsel' admin.site.register(Category, CategoryAdmin) class PortfolioAdmin(admin.ModelAdmin): list_display = ('get_portfolio_title', 'portfolio_image', 'portfolio_categories', 'is_active', 'created_at') list_filter = ('is_active', 'created_at', 'categories') search_fields = ('url',) list_editable = ('is_active',) readonly_fields = ('created_at', 'updated_at') filter_horizontal = ('categories',) fieldsets = ( ('Portfolio Bilgileri', { 'fields': ('url', 'categories') }), ('Görsel', { 'fields': ('image',) }), ('Ayarlar', { 'fields': ('is_active',) }), ('Tarihler', { 'fields': ('created_at', 'updated_at'), 'classes': ('collapse',) }), ) class Meta: model = Portfolio def get_portfolio_title(self, obj): if obj.url: return obj.url[:50] + '...' if len(obj.url) > 50 else obj.url return f"Portfolio #{obj.id}" get_portfolio_title.short_description = 'Portfolio' def portfolio_image(self, obj): if obj.image: return mark_safe( ''.format( obj.image.url, obj.image.url)) return mark_safe('Resim Yok') portfolio_image.short_description = 'Görsel' def portfolio_categories(self, obj): categories = obj.categories.all() if categories: html = '' return mark_safe(html) return mark_safe('Kategori Yok') portfolio_categories.short_description = 'Kategoriler' admin.site.register(Portfolio, PortfolioAdmin)