Files
cmhub/apps/portal/admin.py
T

67 lines
1.6 KiB
Python

from django.contrib import admin
from .models import DownloadRelease
@admin.register(DownloadRelease)
class DownloadReleaseAdmin(admin.ModelAdmin):
list_display = (
"platform",
"version",
"is_current",
"force_update",
"download_source",
"sha256_short",
"updated_at",
)
list_filter = ("platform", "is_current", "force_update")
search_fields = ("version", "sha256", "external_url", "file")
readonly_fields = ("created_at", "updated_at")
fieldsets = (
(
"版本信息",
{
"fields": (
"platform",
"version",
"is_current",
"force_update",
"release_notes",
)
},
),
(
"下载配置",
{
"fields": (
"file",
"external_url",
"sha256",
)
},
),
(
"时间",
{
"fields": (
"created_at",
"updated_at",
)
},
),
)
@admin.display(description="下载来源")
def download_source(self, obj):
if obj.external_url:
return "外部链接"
if obj.file:
return "本地文件"
return "未配置"
@admin.display(description="SHA256")
def sha256_short(self, obj):
if not obj.sha256:
return "-"
return f"{obj.sha256[:12]}..."