progress 检查

This commit is contained in:
CakeCN
2025-12-13 18:56:21 +08:00
parent 6acb1db093
commit 8e79380ba4
3 changed files with 33 additions and 11 deletions

View File

@@ -36,6 +36,7 @@ def save_learning_progress(chatmanager, user_id: str) -> bool:
"chat_historys": chatmanager.chat_historys, "chat_historys": chatmanager.chat_historys,
"scores": chatmanager.scores, "scores": chatmanager.scores,
"multiagents_dialogs": his_data, "multiagents_dialogs": his_data,
"chapter_chain_length": len(chatmanager.chapter_chain),
"updated_at": datetime.now() "updated_at": datetime.now()
} }
@@ -146,6 +147,7 @@ def load_learning_progress(user_id: str, material_id: str, chapter_name: str, le
"chat_historys": [], "chat_historys": [],
"scores": [], "scores": [],
"chapter_chain_now": None, "chapter_chain_now": None,
"chapter_chain_length": 0,
"updated_at": datetime.now().isoformat() "updated_at": datetime.now().isoformat()
}, },
"message": "未找到学习记录,返回默认值" "message": "未找到学习记录,返回默认值"
@@ -164,6 +166,7 @@ def load_learning_progress(user_id: str, material_id: str, chapter_name: str, le
"chat_historys": [], "chat_historys": [],
"scores": [], "scores": [],
"chapter_chain_now": None, "chapter_chain_now": None,
"chapter_chain_length": 0,
"updated_at": datetime.now().isoformat() "updated_at": datetime.now().isoformat()
}, },
"message": error_msg "message": error_msg

View File

@@ -61,16 +61,26 @@
</head> </head>
<body> <body>
<div class="confirm-container"> <div class="confirm-container">
<h1>加载历史数据确认</h1> {% if is_course_finished %}
<p>您即将进入学习环境,是否需要加载您之前的对话历史记录和学习进度数据?</p> <h1>重新学习确认</h1>
<div class="btn-group"> <p>您已经完成了该课程的学习,是否要重新开始学习?</p>
<a href="{{ url_for('vscode.desktop', user_uuid=user_uuid, course_id=course_id, chapter_name=chapter_name, lesson_name=lesson_name, load_history='true') }}" class="btn btn-primary"> <div class="btn-group">
是,加载历史数据 <a href="{{ url_for('vscode.desktop', user_uuid=user_uuid, course_id=course_id, chapter_name=chapter_name, lesson_name=lesson_name, load_history='false') }}" class="btn btn-primary">
</a> 重新开始学习
<a href="{{ url_for('vscode.desktop', user_uuid=user_uuid, course_id=course_id, chapter_name=chapter_name, lesson_name=lesson_name, load_history='false') }}" class="btn btn-secondary"> </a>
否,重新开始 </div>
</a> {% else %}
</div> <h1>加载历史数据确认</h1>
<p>您即将进入学习环境,是否需要加载您之前的对话历史记录和学习进度数据?</p>
<div class="btn-group">
<a href="{{ url_for('vscode.desktop', user_uuid=user_uuid, course_id=course_id, chapter_name=chapter_name, lesson_name=lesson_name, load_history='true') }}" class="btn btn-primary">
是,加载历史数据
</a>
<a href="{{ url_for('vscode.desktop', user_uuid=user_uuid, course_id=course_id, chapter_name=chapter_name, lesson_name=lesson_name, load_history='false') }}" class="btn btn-secondary">
否,重新开始
</a>
</div>
{% endif %}
</div> </div>
</body> </body>
</html> </html>

View File

@@ -162,12 +162,21 @@ def desktop_nouser(course_id, chapter_name, lesson_name):
# 没有学习记录,直接跳转到学习页面,不显示确认加载历史的页面 # 没有学习记录,直接跳转到学习页面,不显示确认加载历史的页面
return redirect(url_for("vscode.desktop", user_uuid=user_uuid, course_id=course_id, chapter_name=chapter_name, lesson_name=lesson_name, load_history="false")) return redirect(url_for("vscode.desktop", user_uuid=user_uuid, course_id=course_id, chapter_name=chapter_name, lesson_name=lesson_name, load_history="false"))
# 获取学习记录数据
progress_data = progress_result["data"]
chapter_chain_now = progress_data.get("chapter_chain_now", -1)
chapter_chain_length = progress_data.get("chapter_chain_length", 0)
# 检查是否已经学完所有章节
is_course_finished = chapter_chain_now >= chapter_chain_length - 1
return render_template( return render_template(
"confirm_load_history.html", "confirm_load_history.html",
user_uuid=user_uuid, user_uuid=user_uuid,
course_id=course_id, course_id=course_id,
chapter_name=chapter_name, chapter_name=chapter_name,
lesson_name=lesson_name lesson_name=lesson_name,
is_course_finished=is_course_finished
) )
@bp.route("/vscode_data", methods=["POST"]) @bp.route("/vscode_data", methods=["POST"])