from django.contrib import admin from django.utils.translation import gettext_lazy as _ from unfold.admin import ModelAdmin from utils.admin import dovoodi_admin_site from ..models import ContentRelease, HadisDatabaseVersion class ContentReleaseAdmin(ModelAdmin): """Admin for ContentRelease model""" list_display = ('version_name', 'published_at', 'is_active') list_filter = ('is_active', 'published_at') search_fields = ('version_name', 'description') readonly_fields = ('published_at',) ordering = ('-published_at',) fieldsets = ( (None, { 'fields': ('version_name', 'description', 'is_active') }), (_('Timestamps'), { 'fields': ('published_at',), 'classes': ('collapse',) }), ) class HadisDatabaseVersionAdmin(ModelAdmin): """Admin for HadisDatabaseVersion SQLite files""" list_display = ('version', 'file_size_display', 'hadis_count', 'categories_count', 'is_active', 'created_at') list_filter = ('is_active', 'created_at') search_fields = ('version', 'notes', 'checksum_md5') readonly_fields = ('created_at', 'checksum_md5', 'file_size') ordering = ('-version',) def file_size_display(self, obj): if obj.file_size: return f"{obj.file_size / (1024 * 1024):.2f} MB" return "0 MB" file_size_display.short_description = _("حجم فایل") # Register models with the custom admin site dovoodi_admin_site.register(ContentRelease, ContentReleaseAdmin) dovoodi_admin_site.register(HadisDatabaseVersion, HadisDatabaseVersionAdmin)