# 导入Django管理模块
from django.contrib import admin
# 导入自定义模型（假设已在同一目录的models.py中定义）
from .models import commands, EmailSendLog


# 注册Commands模型到Django管理后台
class CommandsAdmin(admin.ModelAdmin):
    """
    命令模型的管理界面配置类
    用于自定义commands模型在Django admin中的显示和行为
    """
    
    # 设置在管理列表页面显示的字段
    list_display = ('title', 'command', 'describe')
    # 字段说明：
    # - title: 命令标题
    # - command: 具体命令内容
    # - describe: 命令描述


# 注册EmailSendLog模型到Django管理后台
class EmailSendLogAdmin(admin.ModelAdmin):
    """
    邮件发送日志模型的管理界面配置类
    用于自定义EmailSendLog模型在Django admin中的显示和行为
    """
    
    # 设置在管理列表页面显示的字段
    list_display = ('title', 'emailto', 'send_result', 'creation_time')
    # 字段说明：
    # - title: 邮件标题
    # - emailto: 收件人
    # - send_result: 发送结果
    # - creation_time: 创建时间
    
    # 设置只读字段，这些字段在编辑页面不可修改
    readonly_fields = (
        'title',        # 邮件标题（只读）
        'emailto',      # 收件人（只读）
        'send_result',  # 发送结果（只读）
        'creation_time', # 创建时间（只读）
        'content'       # 邮件内容（只读）
    )
    
    def has_add_permission(self, request):
        """
        重写添加权限方法，禁止在管理后台手动添加邮件日志记录
        
        Args:
            request: HTTP请求对象
            
        Returns:
            bool: 总是返回False，禁止添加操作
        """
        return False
        # 这样设计是因为邮件发送日志应该由系统自动创建
        # 而不是手动添加，保证日志的真实性和完整性


# 将模型注册到Django管理后台
admin.site.register(commands, CommandsAdmin)
admin.site.register(EmailSendLog, EmailSendLogAdmin)