Files
DEMO-AGENT/apps/audit/views.py

41 lines
1.4 KiB
Python

from django.shortcuts import get_object_or_404, render
from .models import AgentAuditLog, NotificationRecord
from apps.chat.models import Conversation
def log_list(request):
# 处理历史页支持按批次、产品和状态筛选。
scenario_id = (request.GET.get("scenario_id") or "").strip()
keyword = (request.GET.get("keyword") or "").strip()
logs = AgentAuditLog.objects.all()
if scenario_id:
logs = logs.filter(scenario_id=scenario_id)
if keyword:
logs = logs.filter(product_name__icontains=keyword) | logs.filter(batch_id__icontains=keyword)
return render(
request,
"audit/log_list.html",
{
"logs": logs,
"selected_scenario_id": scenario_id,
"keyword": keyword,
},
)
def log_detail(request, log_id: int):
# 详情页只负责按主键加载审计快照并渲染;
# 所有脱敏和字段映射都应在服务层完成。
audit_log = get_object_or_404(AgentAuditLog, pk=log_id)
notifications = NotificationRecord.objects.filter(
conversation_id=audit_log.conversation_id,
batch_id=audit_log.batch_id,
)
conversation = Conversation.objects.filter(conversation_id=audit_log.conversation_id).first()
return render(
request,
"audit/log_detail.html",
{"log": audit_log, "notifications": notifications, "conversation": conversation},
)