from django.contrib import admin from unfold.admin import ModelAdmin as UnfoldModelAdmin from unfold.admin import StackedInline as UnfoldStackedInline from .models import TranscriptionTask, AIEvaluation class AIEvaluationInline(UnfoldStackedInline): model = AIEvaluation extra = 0 can_delete = False verbose_name = "AI评估" verbose_name_plural = "AI评估" readonly_fields = ['created_at', 'updated_at', 'raw_response', 'reasoning'] fields = ('score', 'evaluation', 'model_selection', 'prompt', 'reasoning', 'status', 'error_message') @admin.register(TranscriptionTask) class TranscriptionTaskAdmin(UnfoldModelAdmin): list_display = ['id', 'status', 'task_id', 'created_at'] list_filter = ['status', 'created_at'] search_fields = ['id', 'task_id', 'transcription', 'summary'] readonly_fields = ['id', 'created_at', 'updated_at', 'task_id'] inlines = [AIEvaluationInline] @admin.register(AIEvaluation) class AIEvaluationAdmin(UnfoldModelAdmin): list_display = ['id', 'task', 'score', 'status', 'model_selection', 'created_at'] list_filter = ['status', 'model_selection', 'created_at'] search_fields = ['task__id', 'evaluation', 'reasoning'] readonly_fields = ['id', 'created_at', 'updated_at', 'raw_response'] fieldsets = ( (None, { 'fields': ('task', 'status', 'score', 'evaluation') }), ('配置', { 'fields': ('model_selection', 'prompt'), 'classes': ('collapse',), }), ('调试信息', { 'fields': ('raw_response', 'reasoning', 'error_message'), 'classes': ('collapse',), }), )