youngtsai commited on
Commit
1f25a6b
·
1 Parent(s): 5fe8ff1

date error fix

Browse files
Files changed (1) hide show
  1. assignment_service.py +22 -13
assignment_service.py CHANGED
@@ -139,48 +139,57 @@ class AssignmentService:
139
  else:
140
  user_assignments = self.get_user_assignments(assigner_data)
141
 
142
-
143
  for assignment_id, assignment_info in user_assignments.items():
144
  assignment_data = self.get_assignment(assignment_id)
145
  metadata = assignment_data.get("metadata", {})
146
- if metadata:
147
- topic = metadata.get("topic", "未命名作業")
148
- else:
149
- topic = "未命名作業"
150
  assignment_type = assignment_data.get("assignment_type", "未知類型")
151
  timestamp = assignment_data.get("timestamp", "未知日期")
152
 
153
  # 格式化日期
154
- date = datetime.strptime(timestamp, "%Y-%m-%d %H:%M:%S").strftime("%Y-%m-%d")
 
 
 
 
 
 
155
 
156
  # 創建格式化的選項
157
  formatted_choice = f"{date}|{assignment_type}|{topic}"
158
  choice = (formatted_choice, assignment_id)
159
  choices.append(choice)
160
 
161
- # 按日期降序排序
162
- choices.sort(key=lambda x: x[0].split("|")[0], reverse=True)
163
 
164
  return gr.update(choices=choices)
165
 
166
 
167
  def delete_assignment(self, assignment_id, user_data):
168
  try:
169
- # 刪除作業文件
170
  file_name = f"assignments/{assignment_id}.json"
171
- if not self.gcs_service.delete_file(self.bucket_name, file_name):
172
- raise Exception("Failed to delete assignment file")
 
 
 
 
173
 
174
- # 從用戶的作業列表中刪
175
  user_assignments = self.get_user_assignments(user_data)
176
  if assignment_id in user_assignments:
177
  del user_assignments[assignment_id]
178
  encoded_user_id_url = urllib.parse.quote(user_data, safe='')
179
  self.gcs_service.upload_json_string(self.bucket_name, f"users/{encoded_user_id_url}/assignments.json", json.dumps(user_assignments))
 
 
 
180
 
181
  return True
182
  except Exception as e:
183
- print(f"Error deleting assignment: {e}")
184
  return False
185
 
186
 
 
139
  else:
140
  user_assignments = self.get_user_assignments(assigner_data)
141
 
 
142
  for assignment_id, assignment_info in user_assignments.items():
143
  assignment_data = self.get_assignment(assignment_id)
144
  metadata = assignment_data.get("metadata", {})
145
+ topic = metadata.get("topic", "未命名作業") if metadata else "未命名作業"
 
 
 
146
  assignment_type = assignment_data.get("assignment_type", "未知類型")
147
  timestamp = assignment_data.get("timestamp", "未知日期")
148
 
149
  # 格式化日期
150
+ if timestamp != "未知日期":
151
+ try:
152
+ date = datetime.strptime(timestamp, "%Y-%m-%d %H:%M:%S").strftime("%Y-%m-%d")
153
+ except ValueError:
154
+ date = "未知日期"
155
+ else:
156
+ date = "未知日期"
157
 
158
  # 創建格式化的選項
159
  formatted_choice = f"{date}|{assignment_type}|{topic}"
160
  choice = (formatted_choice, assignment_id)
161
  choices.append(choice)
162
 
163
+ # 按日期降序排序,將"未知日期"放在最後
164
+ choices.sort(key=lambda x: (x[0].split("|")[0] == "未知日期", x[0].split("|")[0]), reverse=True)
165
 
166
  return gr.update(choices=choices)
167
 
168
 
169
  def delete_assignment(self, assignment_id, user_data):
170
  try:
171
+ # 首先檢查作業是否存在
172
  file_name = f"assignments/{assignment_id}.json"
173
+ if not self.gcs_service.check_file_exists(self.bucket_name, file_name):
174
+ print(f"警告:作業文件 {file_name} 不存在")
175
+ else:
176
+ # 如果文件存在,嘗試刪除
177
+ if not self.gcs_service.delete_file(self.bucket_name, file_name):
178
+ print(f"警告:無法刪除作業文件 {file_name}")
179
 
180
+ # 從用戶的作業列表中刪除
181
  user_assignments = self.get_user_assignments(user_data)
182
  if assignment_id in user_assignments:
183
  del user_assignments[assignment_id]
184
  encoded_user_id_url = urllib.parse.quote(user_data, safe='')
185
  self.gcs_service.upload_json_string(self.bucket_name, f"users/{encoded_user_id_url}/assignments.json", json.dumps(user_assignments))
186
+ print(f"已從用戶 {user_data} 的作業列表中刪除作業 {assignment_id}")
187
+ else:
188
+ print(f"警告:作業 {assignment_id} 不在用戶 {user_data} 的作業列表中")
189
 
190
  return True
191
  except Exception as e:
192
+ print(f"刪除作業時發生錯誤:{e}")
193
  return False
194
 
195