youngtsai commited on
Commit
330a072
·
1 Parent(s): 63ec01d

with gr.Accordion("📚 中文段落練習歷程回顧", open=True) as chinese_grapragh_practice_logs_accordion:

Browse files
Files changed (1) hide show
  1. app.py +75 -35
app.py CHANGED
@@ -948,39 +948,11 @@ def generate_chinese_paragraph_practice_history(
948
  GCS_SERVICE.upload_json_string("jutor_logs", file_name, json.dumps(content))
949
 
950
  if assignment_id_input:
951
- assignment_file_name = f"assignments/{assignment_id_input}.json"
952
- try:
953
- submission_id = generate_unique_submission_id()
954
- submission_data = {
955
- "submission_id": submission_id,
956
- "assignment_id": assignment_id_input,
957
- "student_id": user_data,
958
- "student_name": "",
959
- "submission_data": {
960
- "file_name": file_name,
961
- "bucket_name": "jutor_logs",
962
- "content": content
963
- },
964
- "timestamp": datetime.now().strftime("%Y-%m-%d %H:%M:%S")
965
- }
966
- assignment_content = GCS_SERVICE.download_as_string("ai_assignment_submission", assignment_file_name)
967
- assignment_data = json.loads(assignment_content)
968
-
969
- # 添加新的 submission_id 到 assignment 数据中
970
- if "submission_ids" not in assignment_data:
971
- assignment_data["submission_ids"] = []
972
- assignment_data["submission_ids"].append(submission_id)
973
-
974
- # 更新 assignment 文件
975
- GCS_SERVICE.upload_json_string("ai_assignment_submission", assignment_file_name, json.dumps(assignment_data))
976
-
977
- # 上传新的 submission 数据
978
- submission_file_name = f"submissions/{submission_id}.json"
979
- GCS_SERVICE.upload_json_string("ai_assignment_submission", submission_file_name, json.dumps(submission_data))
980
-
981
- print(f"Updated assignment {assignment_id_input} with new submission: {submission_id}")
982
- except Exception as e:
983
- print(f"Error updating assignment {assignment_id_input}: {str(e)}")
984
  else:
985
  gr.Error("請先登入")
986
 
@@ -992,10 +964,78 @@ def generate_chinese_paragraph_practice_history(
992
  chinese_full_paragraph_refine_output_table, \
993
  chinese_full_paragraph_save_output
994
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
995
  def generate_unique_submission_id():
996
  while True:
997
  submission_id = str(uuid.uuid4())
998
- if not GCS_SERVICE.check_file_exists("ai_assignment_submission", f"{submission_id}.json"):
999
  return submission_id
1000
 
1001
  def update_assignment_submission(assignment_id, submission_id):
@@ -3212,7 +3252,7 @@ with gr.Blocks(theme=THEME, css=CSS) as demo:
3212
 
3213
  # === 歷程 session 列表
3214
  with gr.Tab("歷程回顧"):
3215
- with gr.Accordion("📚 中文段落練習歷程回顧", open=False) as chinese_grapragh_practice_logs_accordion:
3216
  with gr.Row():
3217
  with gr.Column(scale=1):
3218
  # 取得中文段落練習 log from GCS
 
948
  GCS_SERVICE.upload_json_string("jutor_logs", file_name, json.dumps(content))
949
 
950
  if assignment_id_input:
951
+ submission_id = submit_assignment(user_data, assignment_id_input, content, file_name)
952
+ if submission_id:
953
+ print(f"Assignment submitted successfully. Submission ID: {submission_id}")
954
+ else:
955
+ print("Failed to submit assignment.")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
956
  else:
957
  gr.Error("請先登入")
958
 
 
964
  chinese_full_paragraph_refine_output_table, \
965
  chinese_full_paragraph_save_output
966
 
967
+ def submit_assignment(user_data, assignment_id, submission_content, file_name):
968
+ """
969
+ 提交作业并更新相关数据。
970
+
971
+ 参数:
972
+ user_data (str): 用户ID
973
+ assignment_id (str): 作业ID
974
+ submission_content (dict): 提交的内容
975
+ file_name (str): 日志文件名
976
+
977
+ 返回:
978
+ str: 提交ID
979
+ """
980
+ try:
981
+ # 生成唯一的提交ID
982
+ submission_id = generate_unique_submission_id()
983
+ timestamp_now = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
984
+
985
+ # 创建提交数据
986
+ submission_data = {
987
+ "submission_id": submission_id,
988
+ "assignment_id": assignment_id,
989
+ "student_id": user_data,
990
+ "student_name": "",
991
+ "submission_data": {
992
+ "file_name": file_name,
993
+ "bucket_name": "jutor_logs",
994
+ "content": submission_content
995
+ },
996
+ "timestamp": timestamp_now
997
+ }
998
+
999
+ # 上传提交数据
1000
+ submission_file_name = f"submissions/{submission_id}.json"
1001
+ GCS_SERVICE.upload_json_string("ai_assignment_submission", submission_file_name, json.dumps(submission_data))
1002
+
1003
+ # 更新作业数据
1004
+ assignment_file_name = f"assignments/{assignment_id}.json"
1005
+ assignment_content = GCS_SERVICE.download_as_string("ai_assignment_submission", assignment_file_name)
1006
+ assignment_data = json.loads(assignment_content)
1007
+
1008
+ if "submission_ids" not in assignment_data:
1009
+ assignment_data["submission_ids"] = []
1010
+ assignment_data["submission_ids"].append(submission_id)
1011
+ GCS_SERVICE.upload_json_string("ai_assignment_submission", assignment_file_name, json.dumps(assignment_data))
1012
+
1013
+ # 更新用户的提交列表
1014
+ user_submissions_file = f"users/{user_data}/submissions.json"
1015
+ try:
1016
+ user_submissions = json.loads(GCS_SERVICE.download_as_string("ai_assignment_submission", user_submissions_file))
1017
+ except:
1018
+ user_submissions = {}
1019
+
1020
+ user_submissions[submission_id] = {
1021
+ "assignment_id": assignment_id,
1022
+ "assignment_name": assignment_data["metadata"]["topic"],
1023
+ "assignment_type": assignment_data["assignment_type"],
1024
+ "timestamp": timestamp_now
1025
+ }
1026
+ GCS_SERVICE.upload_json_string("ai_assignment_submission", user_submissions_file, json.dumps(user_submissions))
1027
+
1028
+ print(f"Updated assignment {assignment_id} with new submission: {submission_id}")
1029
+ return submission_id
1030
+
1031
+ except Exception as e:
1032
+ print(f"Error submitting assignment {assignment_id}: {str(e)}")
1033
+ return None
1034
+
1035
  def generate_unique_submission_id():
1036
  while True:
1037
  submission_id = str(uuid.uuid4())
1038
+ if not GCS_SERVICE.check_file_exists("ai_assignment_submission", f"submissions/{submission_id}.json"):
1039
  return submission_id
1040
 
1041
  def update_assignment_submission(assignment_id, submission_id):
 
3252
 
3253
  # === 歷程 session 列表
3254
  with gr.Tab("歷程回顧"):
3255
+ with gr.Accordion("📚 中文段落練習歷程回顧", open=True) as chinese_grapragh_practice_logs_accordion:
3256
  with gr.Row():
3257
  with gr.Column(scale=1):
3258
  # 取得中文段落練習 log from GCS