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.
46 lines
1.6 KiB
46 lines
1.6 KiB
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)
|
|
|