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', 'is_gap') 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', 'is_gap', 'created_at') list_filter = ('status', 'is_gap', 'created_at') search_fields = ('hadis__title', 'transmitter__full_name') readonly_fields = ('created_at',) ordering = ('hadis', 'order') fieldsets = ( (None, { 'fields': ('hadis', 'transmitter', 'order') }), (_('Status & Gap Information'), { 'fields': ('status', 'is_gap'), 'description': _('Use "Is Gap" to mark missing links in the transmission chain') }), (_('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)