Spaces:
Sleeping
Sleeping
date error fix
Browse files- 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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
172 |
-
|
|
|
|
|
|
|
|
|
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"
|
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 |
|