feat(audit): 增加场景筛选与日志摘要展示
This commit is contained in:
@@ -2,6 +2,7 @@ from django.db import models
|
||||
|
||||
|
||||
class AgentAuditLog(models.Model):
|
||||
# 审计状态需要同时服务数据库检索和前端展示。
|
||||
STATUS_SUCCESS = "success"
|
||||
STATUS_FAILED = "failed"
|
||||
|
||||
@@ -25,6 +26,19 @@ class AgentAuditLog(models.Model):
|
||||
def __str__(self) -> str:
|
||||
return f"{self.scenario_name or self.scenario_id} #{self.pk}"
|
||||
|
||||
def get_status_display_text(self) -> str:
|
||||
"""返回更适合页面展示的中文状态。"""
|
||||
return {
|
||||
self.STATUS_SUCCESS: "执行成功",
|
||||
self.STATUS_FAILED: "执行失败",
|
||||
}.get(self.status, self.status)
|
||||
|
||||
def get_user_input_summary(self, max_length: int = 28) -> str:
|
||||
"""在列表页展示用户输入摘要,避免长文本撑破表格。"""
|
||||
if len(self.user_input) <= max_length:
|
||||
return self.user_input
|
||||
return f"{self.user_input[:max_length]}..."
|
||||
|
||||
|
||||
class DemoBusinessRecord(models.Model):
|
||||
scenario_id = models.CharField(max_length=100, db_index=True)
|
||||
|
||||
@@ -4,8 +4,19 @@ from .models import AgentAuditLog
|
||||
|
||||
|
||||
def log_list(request):
|
||||
# 列表页支持按场景筛选,方便演示时快速定位同一类场景的执行记录。
|
||||
scenario_id = (request.GET.get("scenario_id") or "").strip()
|
||||
logs = AgentAuditLog.objects.all()
|
||||
return render(request, "audit/log_list.html", {"logs": logs})
|
||||
if scenario_id:
|
||||
logs = logs.filter(scenario_id=scenario_id)
|
||||
return render(
|
||||
request,
|
||||
"audit/log_list.html",
|
||||
{
|
||||
"logs": logs,
|
||||
"selected_scenario_id": scenario_id,
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
def log_detail(request, log_id: int):
|
||||
|
||||
Reference in New Issue
Block a user