Files
atabackend/home/admin.py
Beyhan Oğur d50f14bcb1 first commit
2026-04-26 22:20:45 +03:00

416 lines
12 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
from django.contrib import admin
from django.utils.safestring import mark_safe
from home.models import Tags, Home, AboutMe, MyService, MyServiceTitle, Education, Experience, Skill, Knowledge, \
MyResume, MainMenu
# ==================== TAGS ADMIN ====================
class TagsAdmin(admin.ModelAdmin):
list_display = ('tag', 'is_active', 'created_at', 'updated_at')
list_filter = ('is_active', 'created_at')
search_fields = ('tag',)
list_editable = ('is_active',)
readonly_fields = ('created_at', 'updated_at')
class Meta:
model = Tags
admin.site.register(Tags, TagsAdmin)
# ==================== HOME ADMIN ====================
class HomeAdmin(admin.ModelAdmin):
list_display = ('name', 'title', 'home_image', 'home_tags', 'is_active', 'slug', 'created_at')
list_filter = ('is_active', 'created_at')
search_fields = ('name', 'title', 'slug', 'keywords')
list_editable = ('is_active',)
readonly_fields = ('created_at', 'updated_at', 'slug')
filter_horizontal = ('tags',)
fieldsets = (
('Genel Bilgiler', {
'fields': ('name', 'title', 'slug')
}),
('Butonlar & Video', {
'fields': ('button1', 'button2', 'video')
}),
('SEO & Etiketler', {
'fields': ('keywords', 'tags')
}),
('Görsel', {
'fields': ('image',)
}),
('Ayarlar', {
'fields': ('is_active',)
}),
('Tarihler', {
'fields': ('created_at', 'updated_at'),
'classes': ('collapse',)
}),
)
class Meta:
model = Home
def home_tags(self, obj):
tags = obj.tags.all()
if tags:
html = '<ul style="margin: 0; padding-left: 20px;">'
for tag in tags:
html += f'<li>{tag.tag}</li>'
html += '</ul>'
return mark_safe(html)
return mark_safe('<span style="color: #999;">Tag Yok</span>')
home_tags.short_description = 'Etiketler'
def home_image(self, obj):
if obj.image:
return mark_safe(
'<a href="{}" target="_blank"><img src="{}" width="50" height="50" style="object-fit: cover; border-radius: 5px; cursor: pointer;" title="Büyük görseli görmek için tıklayın" /></a>'.format(
obj.image.url, obj.image.url))
return mark_safe('<span style="color: #999;">Resim Yok</span>')
home_image.short_description = 'Görsel'
admin.site.register(Home, HomeAdmin)
# ==================== ABOUT ME ADMIN ====================
class AboutMeAdmin(admin.ModelAdmin):
list_display = ('title', 'about_image', 'city', 'age', 'is_active', 'counter_active', 'created_at')
list_filter = ('is_active', 'counter_active', 'created_at')
search_fields = ('title', 'city', 'website', 'mail')
list_editable = ('is_active', 'counter_active')
readonly_fields = ('created_at', 'updated_at', 'slug')
fieldsets = (
('Genel Bilgiler', {
'fields': ('title', 'slug')
}),
('Görsel', {
'fields': ('image', 'image_sub')
}),
('CV', {
'fields': ('cv',)
}),
('Kişisel Bilgiler', {
'fields': ('birthday', 'age', 'city', 'study', 'degree', 'interests')
}),
('İletişim', {
'fields': ('website', 'phone', 'mail', 'x')
}),
('Sayaçlar', {
'fields': ('done', 'project_done', 'user_h', 'hapy_user', 'great', 'great_reviews', 'team', 'support_team'),
'classes': ('collapse',)
}),
('Ayarlar', {
'fields': ('is_active', 'counter_active')
}),
('Tarihler', {
'fields': ('created_at', 'updated_at'),
'classes': ('collapse',)
}),
)
class Meta:
model = AboutMe
def about_image(self, obj):
if obj.image:
return mark_safe(
'<a href="{}" target="_blank"><img src="{}" width="50" height="50" style="object-fit: cover; border-radius: 5px; cursor: pointer;" title="Büyük görseli görmek için tıklayın" /></a>'.format(
obj.image.url, obj.image.url))
return mark_safe('<span style="color: #999;">Resim Yok</span>')
about_image.short_description = 'Görsel'
admin.site.register(AboutMe, AboutMeAdmin)
# ==================== MY SERVICE ADMIN ====================
class MyServiceAdmin(admin.ModelAdmin):
list_display = ('title', 'service_image', 'is_active', 'slug', 'created_at')
list_filter = ('is_active', 'created_at')
search_fields = ('title', 'slug', 'content')
list_editable = ('is_active',)
readonly_fields = ('created_at', 'updated_at', 'slug')
fieldsets = (
('Genel Bilgiler', {
'fields': ('title', 'slug')
}),
('İçerik', {
'fields': ('content',)
}),
('Görsel', {
'fields': ('image',)
}),
('Ayarlar', {
'fields': ('is_active',)
}),
('Tarihler', {
'fields': ('created_at', 'updated_at'),
'classes': ('collapse',)
}),
)
class Meta:
model = MyService
def service_image(self, obj):
if obj.image:
return mark_safe(
'<a href="{}" target="_blank"><img src="{}" width="50" height="50" style="object-fit: cover; border-radius: 5px; cursor: pointer;" title="Büyük görseli görmek için tıklayın" /></a>'.format(
obj.image.url, obj.image.url))
return mark_safe('<span style="color: #999;">Resim Yok</span>')
service_image.short_description = 'Görsel'
admin.site.register(MyService, MyServiceAdmin)
# ==================== MY SERVICE TITLE ADMIN ====================
class MyServiceTitleAdmin(admin.ModelAdmin):
list_display = ('title', 'title_sub', 'is_active', 'created_at')
list_filter = ('is_active', 'created_at')
search_fields = ('title', 'title_sub')
list_editable = ('is_active',)
readonly_fields = ('created_at', 'updated_at')
fieldsets = (
('Başlık Bilgileri', {
'fields': ('title', 'title_sub')
}),
('Ayarlar', {
'fields': ('is_active',)
}),
('Tarihler', {
'fields': ('created_at', 'updated_at'),
'classes': ('collapse',)
}),
)
class Meta:
model = MyServiceTitle
admin.site.register(MyServiceTitle, MyServiceTitleAdmin)
# ==================== MY RESUME ADMIN ====================
class MyResumeAdmin(admin.ModelAdmin):
list_display = ('title', 'title_sub', 'is_active', 'created_at')
list_filter = ('is_active', 'created_at')
search_fields = ('title', 'title_sub')
list_editable = ('is_active',)
readonly_fields = ('created_at', 'updated_at')
fieldsets = (
('Genel Bilgiler', {
'fields': ('title', 'title_sub')
}),
('Bölüm Başlıkları', {
'fields': ('education', 'experience', 'coding_skills', 'knowledge')
}),
('Ayarlar', {
'fields': ('is_active',)
}),
('Tarihler', {
'fields': ('created_at', 'updated_at'),
'classes': ('collapse',)
}),
)
class Meta:
model = MyResume
admin.site.register(MyResume, MyResumeAdmin)
# ==================== EDUCATION ADMIN ====================
class EducationAdmin(admin.ModelAdmin):
list_display = ('title', 'between_years', 'get_resume', 'is_active', 'created_at')
list_filter = ('is_active', 'created_at', 'resume')
search_fields = ('title', 'content', 'between_years')
list_editable = ('is_active',)
readonly_fields = ('created_at', 'updated_at')
fieldsets = (
('Eğitim Bilgileri', {
'fields': ('title', 'between_years', 'content')
}),
('Resume Bağlantısı', {
'fields': ('resume',)
}),
('Ayarlar', {
'fields': ('is_active',)
}),
('Tarihler', {
'fields': ('created_at', 'updated_at'),
'classes': ('collapse',)
}),
)
class Meta:
model = Education
def get_resume(self, obj):
if obj.resume:
return obj.resume.title
return mark_safe('<span style="color: #999;">Resume Yok</span>')
get_resume.short_description = 'Resume'
admin.site.register(Education, EducationAdmin)
# ==================== EXPERIENCE ADMIN ====================
class ExperienceAdmin(admin.ModelAdmin):
list_display = ('title', 'between_years', 'get_resume', 'is_active', 'created_at')
list_filter = ('is_active', 'created_at', 'resume')
search_fields = ('title', 'content', 'between_years')
list_editable = ('is_active',)
readonly_fields = ('created_at', 'updated_at')
fieldsets = (
('Deneyim Bilgileri', {
'fields': ('title', 'between_years', 'content')
}),
('Resume Bağlantısı', {
'fields': ('resume',)
}),
('Ayarlar', {
'fields': ('is_active',)
}),
('Tarihler', {
'fields': ('created_at', 'updated_at'),
'classes': ('collapse',)
}),
)
class Meta:
model = Experience
def get_resume(self, obj):
if obj.resume:
return obj.resume.title
return mark_safe('<span style="color: #999;">Resume Yok</span>')
get_resume.short_description = 'Resume'
admin.site.register(Experience, ExperienceAdmin)
# ==================== SKILL ADMIN ====================
class SkillAdmin(admin.ModelAdmin):
list_display = ('title', 'degree', 'get_resume', 'is_active', 'created_at')
list_filter = ('is_active', 'created_at', 'resume')
search_fields = ('title',)
list_editable = ('is_active', 'degree')
readonly_fields = ('created_at', 'updated_at')
fieldsets = (
('Yetenek Bilgileri', {
'fields': ('title', 'degree')
}),
('Resume Bağlantısı', {
'fields': ('resume',)
}),
('Ayarlar', {
'fields': ('is_active',)
}),
('Tarihler', {
'fields': ('created_at', 'updated_at'),
'classes': ('collapse',)
}),
)
class Meta:
model = Skill
def get_resume(self, obj):
if obj.resume:
return obj.resume.title
return mark_safe('<span style="color: #999;">Resume Yok</span>')
get_resume.short_description = 'Resume'
admin.site.register(Skill, SkillAdmin)
# ==================== KNOWLEDGE ADMIN ====================
class KnowledgeAdmin(admin.ModelAdmin):
list_display = ('title', 'get_resume', 'is_active', 'created_at')
list_filter = ('is_active', 'created_at', 'resume')
search_fields = ('title',)
list_editable = ('is_active',)
readonly_fields = ('created_at', 'updated_at')
fieldsets = (
('Bilgi Başlığı', {
'fields': ('title',)
}),
('Resume Bağlantısı', {
'fields': ('resume',)
}),
('Ayarlar', {
'fields': ('is_active',)
}),
('Tarihler', {
'fields': ('created_at', 'updated_at'),
'classes': ('collapse',)
}),
)
class Meta:
model = Knowledge
def get_resume(self, obj):
if obj.resume:
return obj.resume.title
return mark_safe('<span style="color: #999;">Resume Yok</span>')
get_resume.short_description = 'Resume'
admin.site.register(Knowledge, KnowledgeAdmin)
# ==================== MAIN MENU ADMIN ====================
class MainMenuAdmin(admin.ModelAdmin):
list_display = ('home', 'about', 'services', 'resume', 'portfolio', 'contact', 'is_active', 'created_at')
list_filter = ('is_active', 'created_at')
search_fields = ('home', 'about', 'services', 'resume', 'portfolio', 'contact')
list_editable = ('is_active',)
readonly_fields = ('created_at', 'updated_at')
fieldsets = (
('Menü İsimleri', {
'fields': ('home', 'about', 'services', 'resume', 'portfolio', 'contact')
}),
('Ayarlar', {
'fields': ('is_active',)
}),
('Tarihler', {
'fields': ('created_at', 'updated_at'),
'classes': ('collapse',)
}),
)
class Meta:
model = MainMenu
admin.site.register(MainMenu, MainMenuAdmin)