You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
2.0 KiB
65 lines
2.0 KiB
from django.contrib import admin
|
|
from django.utils.translation import gettext_lazy as _
|
|
from unfold.admin import ModelAdmin, TabularInline
|
|
from unfold.decorators import display, action
|
|
|
|
from utils.admin import project_admin_site
|
|
from ..models import Transmitters, HadisTransmitter
|
|
|
|
|
|
class HadisTransmitterInline(TabularInline):
|
|
"""Inline for HadisTransmitter in Transmitters admin"""
|
|
model = HadisTransmitter
|
|
extra = 0
|
|
fields = ('hadis', 'order', 'status')
|
|
readonly_fields = ('created_at',)
|
|
|
|
|
|
class TransmittersAdmin(ModelAdmin):
|
|
"""Admin for Transmitters model"""
|
|
list_display = ('full_name', 'birth_year_hijri', 'death_year_hijri')
|
|
list_filter = ('birth_year_hijri', 'death_year_hijri')
|
|
search_fields = ('full_name', 'description')
|
|
readonly_fields = ('created_at', 'updated_at')
|
|
inlines = [HadisTransmitterInline]
|
|
|
|
fieldsets = (
|
|
(None, {
|
|
'fields': ('full_name', 'birth_year_hijri', 'death_year_hijri')
|
|
}),
|
|
(_('Additional Information'), {
|
|
'fields': ('description', 'thumbnail'),
|
|
'classes': ('collapse',)
|
|
}),
|
|
(_('Timestamps'), {
|
|
'fields': ('created_at', 'updated_at'),
|
|
'classes': ('collapse',)
|
|
}),
|
|
)
|
|
|
|
|
|
class HadisTransmitterAdmin(ModelAdmin):
|
|
"""Admin for HadisTransmitter model"""
|
|
list_display = ('hadis', 'transmitter', 'order', 'status', 'created_at')
|
|
list_filter = ('status', 'created_at')
|
|
search_fields = ('hadis__title', 'transmitter__full_name')
|
|
readonly_fields = ('created_at',)
|
|
ordering = ('hadis', 'order')
|
|
|
|
fieldsets = (
|
|
(None, {
|
|
'fields': ('hadis', 'transmitter', 'order')
|
|
}),
|
|
(_('Status Information'), {
|
|
'fields': ('status',)
|
|
}),
|
|
(_('Timestamps'), {
|
|
'fields': ('created_at',),
|
|
'classes': ('collapse',)
|
|
}),
|
|
)
|
|
|
|
|
|
# Register models with the custom admin site
|
|
project_admin_site.register(Transmitters, TransmittersAdmin)
|
|
project_admin_site.register(HadisTransmitter, HadisTransmitterAdmin)
|