youngtsai commited on
Commit
493d6ff
·
1 Parent(s): a235a22

ignore pyc

Browse files
Files changed (5) hide show
  1. .gitignore +2 -1
  2. app.py +1 -1
  3. assignment_service.py +3 -1
  4. assignment_ui.py +5 -5
  5. dashboard_service.py +16 -1
.gitignore CHANGED
@@ -1,2 +1,3 @@
1
  xx.js
2
- local_config.json
 
 
1
  xx.js
2
+ local_config.json
3
+ *.pyc
app.py CHANGED
@@ -3815,7 +3815,7 @@ with gr.Blocks(theme=THEME, css=CSS) as demo:
3815
  with gr.Accordion("💡 提醒", open=True):
3816
  gr.Markdown("Cutor 是你得力的作文批改小幫手,但它不是老師,和你一樣都在學習,偶爾也會出錯。如果你對於 Cutor 給你的建議有疑問,請提出和平台討論喔")
3817
  with gr.Row():
3818
- assignment_interface = create_assignment_ui(user_data, _AssignmentService, _SubmissionService, _DashboardService)
3819
 
3820
  demo.load(
3821
  init_params,
 
3815
  with gr.Accordion("💡 提醒", open=True):
3816
  gr.Markdown("Cutor 是你得力的作文批改小幫手,但它不是老師,和你一樣都在學習,偶爾也會出錯。如果你對於 Cutor 給你的建議有疑問,請提出和平台討論喔")
3817
  with gr.Row():
3818
+ assignment_interface = create_assignment_ui(user_data, user_email, user_nickname, _AssignmentService, _SubmissionService, _DashboardService)
3819
 
3820
  demo.load(
3821
  init_params,
assignment_service.py CHANGED
@@ -38,7 +38,7 @@ class AssignmentService:
38
 
39
  return metadata
40
 
41
- def create_assignment(self, user_data, assignment_type, metadata):
42
  assignment_id = self.create_assignment_id()
43
  timestamp_now = datetime.now(pytz.utc).astimezone(pytz.timezone('Asia/Taipei')).strftime("%Y-%m-%d %H:%M:%S")
44
  host_url = "https://www.junyiacademy.org/event/jutor_write_2024/?__theme=light"
@@ -52,6 +52,8 @@ class AssignmentService:
52
  new_assignment = {
53
  "assignment_id": assignment_id,
54
  "assigner_data": user_data,
 
 
55
  "assignment_type": assignment_type,
56
  "metadata": metadata,
57
  "assignment_url": assignment_url,
 
38
 
39
  return metadata
40
 
41
+ def create_assignment(self, user_data, user_email, user_nickname,assignment_type, metadata):
42
  assignment_id = self.create_assignment_id()
43
  timestamp_now = datetime.now(pytz.utc).astimezone(pytz.timezone('Asia/Taipei')).strftime("%Y-%m-%d %H:%M:%S")
44
  host_url = "https://www.junyiacademy.org/event/jutor_write_2024/?__theme=light"
 
52
  new_assignment = {
53
  "assignment_id": assignment_id,
54
  "assigner_data": user_data,
55
+ "assigner_email": user_email,
56
+ "assigner_nickname": user_nickname,
57
  "assignment_type": assignment_type,
58
  "metadata": metadata,
59
  "assignment_url": assignment_url,
assignment_ui.py CHANGED
@@ -2,7 +2,7 @@ import gradio as gr
2
  from datetime import datetime
3
  import pandas as pd
4
 
5
- def create_assignment_ui(user_data, assignment_service, submission_service, dashboard_service):
6
  with gr.Blocks() as assignment_interface:
7
  with gr.Tab("老師|建立作業"):
8
  with gr.Row():
@@ -65,7 +65,7 @@ def create_assignment_ui(user_data, assignment_service, submission_service, dash
65
  outputs=[assignment_metadata]
66
  ).then(
67
  assignment_service.create_assignment,
68
- inputs=[user_data, assignment_type, assignment_metadata],
69
  outputs=[assignment_data]
70
  ).then(
71
  update_gr_assignment_url,
@@ -565,13 +565,13 @@ def create_assignment_ui(user_data, assignment_service, submission_service, dash
565
  download_submissions_button = gr.Button("下載提交作業 CSV")
566
  submissions_df_file = gr.File()
567
 
568
- def update_dashboard(user_data):
569
  # 獲取作業列表
570
  assignments = dashboard_service.get_dashboard_data(user_data)
571
  assignments_df = pd.DataFrame(assignments)
572
 
573
  # 獲取所有提交的作業
574
- submissions = dashboard_service.get_all_submissions(user_data)
575
  submissions_df = pd.DataFrame(submissions)
576
 
577
  return assignments_df, submissions_df
@@ -586,7 +586,7 @@ def create_assignment_ui(user_data, assignment_service, submission_service, dash
586
 
587
  refresh_dashboard_button.click(
588
  fn=update_dashboard,
589
- inputs=[user_data],
590
  outputs=[assignments_df, submissions_df]
591
  )
592
 
 
2
  from datetime import datetime
3
  import pandas as pd
4
 
5
+ def create_assignment_ui(user_data, user_email, user_nickname, assignment_service, submission_service, dashboard_service):
6
  with gr.Blocks() as assignment_interface:
7
  with gr.Tab("老師|建立作業"):
8
  with gr.Row():
 
65
  outputs=[assignment_metadata]
66
  ).then(
67
  assignment_service.create_assignment,
68
+ inputs=[user_data, user_email, user_nickname, assignment_type, assignment_metadata],
69
  outputs=[assignment_data]
70
  ).then(
71
  update_gr_assignment_url,
 
565
  download_submissions_button = gr.Button("下載提交作業 CSV")
566
  submissions_df_file = gr.File()
567
 
568
+ def update_dashboard(user_data, user_email, user_nickname):
569
  # 獲取作業列表
570
  assignments = dashboard_service.get_dashboard_data(user_data)
571
  assignments_df = pd.DataFrame(assignments)
572
 
573
  # 獲取所有提交的作業
574
+ submissions = dashboard_service.get_all_submissions(user_data, user_email, user_nickname)
575
  submissions_df = pd.DataFrame(submissions)
576
 
577
  return assignments_df, submissions_df
 
586
 
587
  refresh_dashboard_button.click(
588
  fn=update_dashboard,
589
+ inputs=[user_data, user_email, user_nickname],
590
  outputs=[assignments_df, submissions_df]
591
  )
592
 
dashboard_service.py CHANGED
@@ -62,12 +62,25 @@ class DashboardService:
62
  "assignment_data": assignment_data
63
  }
64
 
65
- def get_all_submissions(self, user_id):
66
  assignments = self.assignment_service.get_user_assignments(user_id)
67
  all_submissions = []
68
 
69
  for assignment_id, assignment_info in assignments.items():
 
 
 
 
70
  assignment_data = self.assignment_service.get_assignment(assignment_id)
 
 
 
 
 
 
 
 
 
71
  submission_ids = assignment_data.get("submission_ids", [])
72
 
73
  for submission_id in submission_ids:
@@ -80,6 +93,8 @@ class DashboardService:
80
  # "學生_id": submission_data["student_id"],
81
  "學生Email": submission_data.get("student_email", "未提供"),
82
  "學生姓名": submission_data["student_name"],
 
 
83
  "繳交日期": submission_data["timestamp"],
84
  "分數": score
85
  })
 
62
  "assignment_data": assignment_data
63
  }
64
 
65
+ def get_all_submissions(self, user_id, user_email, user_nickname):
66
  assignments = self.assignment_service.get_user_assignments(user_id)
67
  all_submissions = []
68
 
69
  for assignment_id, assignment_info in assignments.items():
70
+ # 20251016 新增
71
+ # 確認 assignment_data 是否包含 "assigner_email" and "assigner_nickname" 欄位
72
+ # 如果沒有,且 user_id 是 admin,則給 value = 空值
73
+ # 如果不是 admin 則給 value from user_email, user_nickname
74
  assignment_data = self.assignment_service.get_assignment(assignment_id)
75
+ if "assigner_email" not in assignment_data["metadata"] or "assigner_nickname" not in assignment_data["metadata"]:
76
+ if user_id == "admin":
77
+ assignment_data["metadata"]["assigner_email"] = f"""查無email - {assignment_data["metadata"]["assigner_data"]["email"]}"""
78
+ assignment_data["metadata"]["assigner_nickname"] = f"""查無名稱 - {assignment_data["metadata"]["assigner_data"]["nickname"]}"""
79
+ else:
80
+ assignment_data["metadata"]["assigner_email"] = user_email
81
+ assignment_data["metadata"]["assigner_nickname"] = user_nickname
82
+ self.assignment_service.update_assignment(assignment_id, assignment_data)
83
+
84
  submission_ids = assignment_data.get("submission_ids", [])
85
 
86
  for submission_id in submission_ids:
 
93
  # "學生_id": submission_data["student_id"],
94
  "學生Email": submission_data.get("student_email", "未提供"),
95
  "學生姓名": submission_data["student_name"],
96
+ "老師Email": assignment_data["metadata"]["assigner_email"],
97
+ "老師姓名": assignment_data["metadata"]["assigner_nickname"],
98
  "繳交日期": submission_data["timestamp"],
99
  "分數": score
100
  })