调整课程小结登记审核逻辑

This commit is contained in:
Codex
2026-06-17 10:52:49 +08:00
parent 25257b0a83
commit cc81f82139
2 changed files with 71 additions and 2 deletions
+70 -1
View File
@@ -2732,7 +2732,76 @@ def register_course_summary_texts(
reasons, proposed_line = auto_register_reasons(normalized, classnotes_path, accounts_path)
if reasons:
raise ValueError("".join(reasons))
saved = save_course_summary_markdown(summaries_root, normalized)
duplicate_tasks = create_course_summary_duplicate_review_tasks(
tasks_path,
summaries_root,
target_key=course_summary_duplicate_key(normalized),
)
task = create_course_summary_review_task(
tasks_path,
normalized,
proposed_line,
reasons,
str(saved.get("path") or ""),
)
seen_source_ids.add(source_id)
seen_semantic_keys.add(semantic_key)
state["seen_source_ids"] = sorted(seen_source_ids)
state["seen_semantic_keys"] = sorted(seen_semantic_keys)
state.setdefault("batches", []).append(
{
"batch_id": f"manual-{datetime.now().strftime('%Y%m%d%H%M%S')}-{sha1_text(source_id, 8)}",
"received_at": now,
"window": {"source": "admin_register", "submitted_at": now},
"students": [normalized["student"]],
"result": {
"received": 1,
"saved": 1 if saved.get("added") else 0,
"auto_registered": 0,
"review_pending": 1,
"duplicates": 0,
"rejected": 0,
},
}
)
state["batches"] = state["batches"][-200:]
write_course_summary_state(state_path, state)
log_id = append_operation_log(
operation_logs_path,
"课程小结登记",
"待审核",
source_id=source_id,
student=normalized["student"],
teacher=normalized.get("teacher", ""),
subject=normalized.get("subject", ""),
proposed_line=proposed_line,
reasons=reasons,
task_id=str(task.get("id") or ""),
saved_path=str(saved.get("path") or ""),
)
result["saved"] += 1 if saved.get("added") else 0
result["review_pending"] += 1
result["operation_log_ids"].append(log_id)
if duplicate_tasks["created"]:
scan_log_id = append_operation_log(
operation_logs_path,
"重复小结扫描",
"待审核",
source_id=source_id,
student=normalized["student"],
created_tasks=duplicate_tasks["created"],
)
result["operation_log_ids"].append(scan_log_id)
result["items"].append(
{
"source_id": source_id,
"status": "review_pending",
"task_id": task.get("id"),
"reasons": reasons,
}
)
continue
saved = save_course_summary_markdown(summaries_root, normalized)
duplicate_tasks = create_course_summary_duplicate_review_tasks(
+1 -1
View File
@@ -1060,7 +1060,7 @@ async function confirmRegister(type, statusNode, url, onSuccess) {
body: JSON.stringify({ lines: state.standardLines }),
});
if (type === "course_summary") {
statusNode.textContent = `已接收 ${data.received} 条;自动登记 ${data.auto_registered} 条;重复 ${data.duplicates} 条;舍弃 ${data.rejected}`;
statusNode.textContent = `已接收 ${data.received} 条;自动登记 ${data.auto_registered} 条;待审核 ${data.review_pending} 条;重复 ${data.duplicates} 条;舍弃 ${data.rejected}`;
} else {
statusNode.textContent = `已登记 ${data.registered} 条;备份 ${data.backup_id}`;
}