调整课程小结登记审核逻辑
This commit is contained in:
+70
-1
@@ -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(
|
||||
|
||||
@@ -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}`;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user