109 lines
3.0 KiB
Python
109 lines
3.0 KiB
Python
from django.contrib import admin
|
|
from .models import (
|
|
AboutBanner, AboutStat, AboutSocialLink,
|
|
AboutService, AboutFeature,
|
|
AboutProcess, AboutProcessStep,
|
|
AboutJourney, AboutMilestone
|
|
)
|
|
|
|
|
|
class AboutStatInline(admin.TabularInline):
|
|
model = AboutStat
|
|
extra = 0
|
|
ordering = ['order']
|
|
|
|
|
|
class AboutSocialLinkInline(admin.TabularInline):
|
|
model = AboutSocialLink
|
|
extra = 0
|
|
ordering = ['order']
|
|
|
|
|
|
@admin.register(AboutBanner)
|
|
class AboutBannerAdmin(admin.ModelAdmin):
|
|
list_display = ['title', 'is_active', 'created_at']
|
|
list_filter = ['is_active', 'created_at']
|
|
search_fields = ['title', 'description']
|
|
inlines = [AboutStatInline, AboutSocialLinkInline]
|
|
readonly_fields = ['created_at', 'updated_at']
|
|
|
|
|
|
class AboutFeatureInline(admin.TabularInline):
|
|
model = AboutFeature
|
|
extra = 0
|
|
ordering = ['order']
|
|
|
|
|
|
@admin.register(AboutService)
|
|
class AboutServiceAdmin(admin.ModelAdmin):
|
|
list_display = ['title', 'is_active', 'created_at']
|
|
list_filter = ['is_active', 'created_at']
|
|
search_fields = ['title', 'description']
|
|
inlines = [AboutFeatureInline]
|
|
readonly_fields = ['created_at', 'updated_at']
|
|
|
|
|
|
class AboutProcessStepInline(admin.TabularInline):
|
|
model = AboutProcessStep
|
|
extra = 0
|
|
ordering = ['order']
|
|
|
|
|
|
@admin.register(AboutProcess)
|
|
class AboutProcessAdmin(admin.ModelAdmin):
|
|
list_display = ['title', 'is_active', 'created_at']
|
|
list_filter = ['is_active', 'created_at']
|
|
search_fields = ['title', 'description']
|
|
inlines = [AboutProcessStepInline]
|
|
readonly_fields = ['created_at', 'updated_at']
|
|
|
|
|
|
class AboutMilestoneInline(admin.TabularInline):
|
|
model = AboutMilestone
|
|
extra = 0
|
|
ordering = ['order']
|
|
|
|
|
|
@admin.register(AboutJourney)
|
|
class AboutJourneyAdmin(admin.ModelAdmin):
|
|
list_display = ['title', 'is_active', 'created_at']
|
|
list_filter = ['is_active', 'created_at']
|
|
search_fields = ['title', 'description']
|
|
inlines = [AboutMilestoneInline]
|
|
readonly_fields = ['created_at', 'updated_at']
|
|
|
|
|
|
# Register individual models for direct access
|
|
@admin.register(AboutStat)
|
|
class AboutStatAdmin(admin.ModelAdmin):
|
|
list_display = ['banner', 'number', 'label', 'order']
|
|
list_filter = ['banner']
|
|
ordering = ['banner', 'order']
|
|
|
|
|
|
@admin.register(AboutSocialLink)
|
|
class AboutSocialLinkAdmin(admin.ModelAdmin):
|
|
list_display = ['banner', 'platform', 'url', 'order']
|
|
list_filter = ['banner', 'platform']
|
|
ordering = ['banner', 'order']
|
|
|
|
|
|
@admin.register(AboutFeature)
|
|
class AboutFeatureAdmin(admin.ModelAdmin):
|
|
list_display = ['service', 'title', 'order']
|
|
list_filter = ['service']
|
|
ordering = ['service', 'order']
|
|
|
|
|
|
@admin.register(AboutProcessStep)
|
|
class AboutProcessStepAdmin(admin.ModelAdmin):
|
|
list_display = ['process', 'step_number', 'title', 'order']
|
|
list_filter = ['process']
|
|
ordering = ['process', 'order']
|
|
|
|
|
|
@admin.register(AboutMilestone)
|
|
class AboutMilestoneAdmin(admin.ModelAdmin):
|
|
list_display = ['journey', 'year', 'title', 'order']
|
|
list_filter = ['journey']
|
|
ordering = ['journey', 'order'] |