from django.contrib import admin
from django.utils.safestring import mark_safe
from django.utils.html import format_html
from product.models import Product, Category, Images, Tags, ProductTree
# Register your models here.
class ProductAdmin(admin.ModelAdmin):
list_display = ('title', 'urun_resim', 'is_active', 'urun_kategorileri', 'brim', 'price', 'slug', 'urun_galeri')
list_filter = ('is_active', 'categories')
search_fields = ('title', 'is_active', 'slug', 'content')
list_editable = ('is_active', 'brim', 'price', 'slug',)
readonly_fields = ('thumb', 'image_preview', 'thumb_preview')
filter_horizontal = ('categories', 'tags', 'gallery')
fieldsets = (
('Temel Bilgiler', {
'fields': ('title', 'content', 'categories', 'tags')
}),
('Fiyat ve Birim', {
'fields': ('brim', 'price')
}),
('SEO ve Medya', {
'fields': ('slug', 'keywords', 'video')
}),
('Görseller', {
'fields': ('images', 'image_preview', 'thumb_preview', 'gallery'),
'description': 'Thumb otomatik oluşturulur, images yüklediğinizde.'
}),
('Durum', {
'fields': ('is_active', 'is_front')
}),
)
class Meta:
model = Product
def formatted_hit_count(self, obj):
return obj.current_hit_count if obj.current_hit_count > 0 else '-'
formatted_hit_count.admin_order_field = 'hit_count'
formatted_hit_count.short_description = 'Hits'
def blog_tags(self, obj):
tags = '
'
for tag in obj.tags.all():
tags += '- ' + tag.tag + '
'
tags += '
'
return mark_safe(tags)
def urun_kategorileri(self, obj):
html = ''
for category in obj.categories.all():
html += '- ' + category.title + '
'
html += '
'
return mark_safe(html)
def urun_resim(self, obj):
if obj.images:
return mark_safe('
'.format(obj.id, obj.id, obj.images.url))
return mark_safe('Resim Yok'.format(obj.id, obj.id))
urun_resim.short_description = 'Ürün Resmi'
def image_preview(self, obj):
if obj.images:
return format_html('
', obj.images.url)
return "Resim Yok"
image_preview.short_description = 'Ana Resim Önizleme'
def thumb_preview(self, obj):
if obj.thumb:
return format_html('
', obj.thumb.url)
return "Thumb Yok (Kaydet ve otomatik oluşur)"
thumb_preview.short_description = 'Thumb Önizleme'
def urun_galeri(self, obj):
html = ''
for gal in obj.gallery.all():
html += '- ' + gal.title + '
'
html += '
'
return mark_safe(html)
admin.site.register(Product, ProductAdmin)
class ProductTreeAdmin(admin.ModelAdmin):
list_display = ('title', 'is_active', 'price')
list_filter = ('is_active',)
search_fields = ('title', 'is_active', 'content')
list_editable = ('is_active', 'price',)
class Meta:
model = ProductTree
admin.site.register(ProductTree, ProductTreeAdmin)
class CategoryAdmin(admin.ModelAdmin):
list_display = ('title', 'parent', 'is_active', 'created_at', 'order', 'slug')
list_filter = ('title', 'is_active', 'created_at',)
search_fields = ('title', 'is_active', 'slug')
list_editable = ('is_active', 'order', 'slug')
class Meta:
model = Category
admin.site.register(Category, CategoryAdmin)
class ImagesAdmin(admin.ModelAdmin):
list_display = ('title', 'images', 'created_at',)
list_filter = ('title',)
search_fields = ('title', 'images')
list_editable = ('images',)
class Meta:
model = Images
admin.site.register(Images, ImagesAdmin)
class TagsAdmin(admin.ModelAdmin):
list_display = ('tag', 'created_at',)
list_filter = ('tag',)
search_fields = ('tag',)
class Meta:
model = Tags
admin.site.register(Tags, TagsAdmin)