youngtsai commited on
Commit
bb2d6dc
·
1 Parent(s): 3c532c9

_AssignmentService, _SubmissionService)

Browse files
Files changed (1) hide show
  1. app.py +18 -50
app.py CHANGED
@@ -50,6 +50,9 @@ OPEN_AI_MODERATION_CLIENT = OpenAI(api_key=OPEN_AI_MODERATION_BOT1)
50
  GCS_SERVICE = GoogleCloudStorage(GCS_KEY)
51
  GCS_CLIENT = GCS_SERVICE.client
52
 
 
 
 
53
  def update_scenario_input(scenario_radio):
54
  return scenario_radio
55
 
@@ -971,55 +974,22 @@ def generate_chinese_paragraph_practice_history(
971
 
972
  def submit_assignment(user_data, user_nickname, assignment_id, submission_content, file_name):
973
  try:
974
- # 生成唯一的提交ID
975
- submission_id = generate_unique_submission_id()
976
- timestamp_now = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
977
-
978
- # 创建提交数据
979
- submission_data = {
980
- "submission_id": submission_id,
981
- "assignment_id": assignment_id,
982
- "student_id": user_data,
983
- "student_name": user_nickname,
984
- "submission_data": {
985
- "file_name": file_name,
986
- "bucket_name": "jutor_logs",
987
- "content": submission_content
988
- },
989
- "timestamp": timestamp_now
990
- }
991
-
992
- # 上传提交数据
993
- submission_file_name = f"submissions/{submission_id}.json"
994
- GCS_SERVICE.upload_json_string("ai_assignment_submission", submission_file_name, json.dumps(submission_data))
995
-
996
- # 更新作业数据
997
- assignment_file_name = f"assignments/{assignment_id}.json"
998
- assignment_content = GCS_SERVICE.download_as_string("ai_assignment_submission", assignment_file_name)
999
- assignment_data = json.loads(assignment_content)
1000
-
1001
- if "submission_ids" not in assignment_data:
1002
- assignment_data["submission_ids"] = []
1003
- assignment_data["submission_ids"].append(submission_id)
1004
- GCS_SERVICE.upload_json_string("ai_assignment_submission", assignment_file_name, json.dumps(assignment_data))
1005
-
1006
- # 更新用户的提交列表
1007
- user_submissions_file = f"users/{user_data}/submissions.json"
1008
  try:
1009
- user_submissions = json.loads(GCS_SERVICE.download_as_string("ai_assignment_submission", user_submissions_file))
1010
- except:
1011
- user_submissions = {}
1012
-
1013
- user_submissions[submission_id] = {
1014
- "assignment_id": assignment_id,
1015
- "assignment_name": assignment_data["metadata"]["topic"],
1016
- "assignment_type": assignment_data["assignment_type"],
1017
- "timestamp": timestamp_now
1018
- }
1019
- GCS_SERVICE.upload_json_string("ai_assignment_submission", user_submissions_file, json.dumps(user_submissions))
1020
 
1021
- print(f"Updated assignment {assignment_id} with new submission: {submission_id}")
1022
- return submission_id
 
 
 
 
1023
 
1024
  except Exception as e:
1025
  print(f"Error submitting assignment {assignment_id}: {str(e)}")
@@ -3359,9 +3329,7 @@ with gr.Blocks(theme=THEME, css=CSS) as demo:
3359
  with gr.Row():
3360
  gr.Markdown("# 📝 作業管理")
3361
  with gr.Row():
3362
- assignment_service = AssignmentService(GCS_SERVICE)
3363
- submission_service = SubmissionService(GCS_SERVICE)
3364
- assignment_interface = create_assignment_ui(user_data, assignment_service, submission_service)
3365
 
3366
  demo.load(
3367
  init_params,
 
50
  GCS_SERVICE = GoogleCloudStorage(GCS_KEY)
51
  GCS_CLIENT = GCS_SERVICE.client
52
 
53
+ _AssignmentService = AssignmentService(GCS_SERVICE)
54
+ _SubmissionService = SubmissionService(GCS_SERVICE)
55
+
56
  def update_scenario_input(scenario_radio):
57
  return scenario_radio
58
 
 
974
 
975
  def submit_assignment(user_data, user_nickname, assignment_id, submission_content, file_name):
976
  try:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
977
  try:
978
+ submission_id = _SubmissionService.submit_assignment(
979
+ assignment_id=assignment_id,
980
+ student_id=user_data,
981
+ student_name=user_nickname,
982
+ submission_content=submission_content,
983
+ file_name=file_name,
984
+ bucket_name="jutor_logs"
985
+ )
 
 
 
986
 
987
+ if submission_id:
988
+ print(f"Updated assignment {assignment_id} with new submission: {submission_id}")
989
+ return submission_id
990
+ else:
991
+ print(f"Failed to submit assignment {assignment_id}")
992
+ return None
993
 
994
  except Exception as e:
995
  print(f"Error submitting assignment {assignment_id}: {str(e)}")
 
3329
  with gr.Row():
3330
  gr.Markdown("# 📝 作業管理")
3331
  with gr.Row():
3332
+ assignment_interface = create_assignment_ui(user_data, _AssignmentService, _SubmissionService)
 
 
3333
 
3334
  demo.load(
3335
  init_params,