from django.contrib import admin from .models import ( Conversation, Message, Feedback, FeedbackTag, DetailedFeedback, ConversationSubmission, ConversationEvaluation, SystemConfig ) @admin.register(Conversation) class ConversationAdmin(admin.ModelAdmin): list_display = ('id', 'user', 'is_submitted', 'created_at') list_filter = ('is_submitted', 'created_at') search_fields = ('id', 'user__username') date_hierarchy = 'created_at' @admin.register(Message) class MessageAdmin(admin.ModelAdmin): list_display = ('id', 'conversation', 'role', 'short_content', 'timestamp') list_filter = ('role', 'timestamp') search_fields = ('id', 'conversation__id', 'content') date_hierarchy = 'timestamp' def short_content(self, obj): return obj.content[:50] + '...' if len(obj.content) > 50 else obj.content short_content.short_description = '内容' @admin.register(Feedback) class FeedbackAdmin(admin.ModelAdmin): list_display = ('id', 'message', 'conversation', 'user', 'feedback_value', 'timestamp') list_filter = ('feedback_value', 'timestamp') search_fields = ('id', 'message__id', 'conversation__id', 'user__username') date_hierarchy = 'timestamp' @admin.register(FeedbackTag) class FeedbackTagAdmin(admin.ModelAdmin): list_display = ('id', 'tag_name', 'tag_type', 'description', 'created_at') list_filter = ('tag_type', 'created_at') search_fields = ('id', 'tag_name', 'description') @admin.register(DetailedFeedback) class DetailedFeedbackAdmin(admin.ModelAdmin): list_display = ('id', 'message', 'conversation', 'user', 'feedback_type', 'is_inline', 'created_at') list_filter = ('feedback_type', 'is_inline', 'created_at') search_fields = ('id', 'message__id', 'conversation__id', 'user__username', 'custom_content') date_hierarchy = 'created_at' @admin.register(ConversationSubmission) class ConversationSubmissionAdmin(admin.ModelAdmin): list_display = ('id', 'conversation', 'user', 'title', 'status', 'quality_score', 'reviewer', 'submitted_at', 'reviewed_at') list_filter = ('status', 'quality_score', 'submitted_at', 'reviewed_at') search_fields = ('id', 'conversation__id', 'user__username', 'title', 'description', 'reviewer__username') date_hierarchy = 'submitted_at' @admin.register(ConversationEvaluation) class ConversationEvaluationAdmin(admin.ModelAdmin): list_display = ('id', 'conversation', 'user', 'has_logical_issues', 'needs_satisfied', 'created_at') list_filter = ('has_logical_issues', 'needs_satisfied', 'created_at') search_fields = ('id', 'conversation__id', 'user__username', 'overall_feeling') date_hierarchy = 'created_at' @admin.register(SystemConfig) class SystemConfigAdmin(admin.ModelAdmin): list_display = ('id', 'config_key', 'config_value', 'config_type', 'description', 'updated_at') list_filter = ('config_type', 'updated_at') search_fields = ('id', 'config_key', 'config_value', 'description') date_hierarchy = 'updated_at'