调整课程小结登记审核逻辑
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)
|
reasons, proposed_line = auto_register_reasons(normalized, classnotes_path, accounts_path)
|
||||||
if reasons:
|
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)
|
saved = save_course_summary_markdown(summaries_root, normalized)
|
||||||
duplicate_tasks = create_course_summary_duplicate_review_tasks(
|
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 }),
|
body: JSON.stringify({ lines: state.standardLines }),
|
||||||
});
|
});
|
||||||
if (type === "course_summary") {
|
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 {
|
} else {
|
||||||
statusNode.textContent = `已登记 ${data.registered} 条;备份 ${data.backup_id}`;
|
statusNode.textContent = `已登记 ${data.registered} 条;备份 ${data.backup_id}`;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user