2025-07-31 21:21:45 +08:00
|
|
|
|
from django.contrib import admin
|
2025-09-07 16:47:12 +08:00
|
|
|
|
from .models import ServiceGroup, Service, ServiceCheckRecord
|
2025-07-31 21:21:45 +08:00
|
|
|
|
|
2025-09-07 16:47:12 +08:00
|
|
|
|
# 引入loguru库用于日志记录
|
|
|
|
|
|
try:
|
|
|
|
|
|
from loguru import logger
|
|
|
|
|
|
except ImportError:
|
|
|
|
|
|
import logging
|
|
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
|
|
|
|
|
|
@admin.register(ServiceGroup)
|
|
|
|
|
|
class ServiceGroupAdmin(admin.ModelAdmin):
|
|
|
|
|
|
list_display = ('name', 'description')
|
|
|
|
|
|
search_fields = ('name', 'description')
|
|
|
|
|
|
|
|
|
|
|
|
def save_model(self, request, obj, form, change):
|
|
|
|
|
|
if change:
|
|
|
|
|
|
logger.info(f"更新服务分组: {obj.name}")
|
|
|
|
|
|
else:
|
|
|
|
|
|
logger.info(f"创建新服务分组: {obj.name}")
|
|
|
|
|
|
super().save_model(request, obj, form, change)
|
|
|
|
|
|
|
|
|
|
|
|
@admin.register(Service)
|
2025-07-31 21:21:45 +08:00
|
|
|
|
class ServiceAdmin(admin.ModelAdmin):
|
2025-09-07 16:47:12 +08:00
|
|
|
|
list_display = ('name', 'group', 'host', 'port', 'check_type', 'is_active', 'created_at')
|
|
|
|
|
|
list_filter = ('group', 'check_type', 'is_active')
|
|
|
|
|
|
search_fields = ('name', 'host', 'description')
|
|
|
|
|
|
|
|
|
|
|
|
def save_model(self, request, obj, form, change):
|
|
|
|
|
|
if change:
|
|
|
|
|
|
logger.info(f"更新服务: {obj.name} ({obj.host})")
|
|
|
|
|
|
else:
|
|
|
|
|
|
logger.info(f"创建新服务: {obj.name} ({obj.host})")
|
|
|
|
|
|
super().save_model(request, obj, form, change)
|
|
|
|
|
|
|
|
|
|
|
|
@admin.register(ServiceCheckRecord)
|
|
|
|
|
|
class ServiceCheckRecordAdmin(admin.ModelAdmin):
|
|
|
|
|
|
list_display = ('service', 'status', 'response_time', 'checked_at')
|
|
|
|
|
|
list_filter = ('status', 'service__group', 'service')
|
|
|
|
|
|
search_fields = ('service__name', 'message')
|
|
|
|
|
|
date_hierarchy = 'checked_at'
|
|
|
|
|
|
readonly_fields = ('service', 'status', 'response_time', 'message', 'checked_at')
|
|
|
|
|
|
|
|
|
|
|
|
def has_add_permission(self, request):
|
|
|
|
|
|
return False # 禁止手动添加检测记录,只能通过API上报
|
|
|
|
|
|
|
|
|
|
|
|
def has_change_permission(self, request, obj=None):
|
|
|
|
|
|
return False # 禁止修改检测记录
|
2025-07-31 21:21:45 +08:00
|
|
|
|
|
2025-09-07 16:47:12 +08:00
|
|
|
|
logger.info("管理后台配置已加载")
|