fix: read teacher feedback from submission.grade.feedback
BroJS stores teacher comments in submission.grade.feedback, not in the top-level comments array (which is always empty). Fixed priority: submission.grade.feedback -> submission.feedback -> data.feedback -> data.comments Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
+11
-1
@@ -177,10 +177,20 @@ async def _get_task_meta(task_id: str) -> dict:
|
|||||||
print(f" [meta] Не удалось проверить Gitea: {e}")
|
print(f" [meta] Не удалось проверить Gitea: {e}")
|
||||||
|
|
||||||
# 2. Читаем комментарии из BroJS
|
# 2. Читаем комментарии из BroJS
|
||||||
|
# BroJS хранит фидбэк преподавателя в submission.grade.feedback,
|
||||||
|
# а не в верхнеуровневом поле comments (которое всегда пустой массив).
|
||||||
try:
|
try:
|
||||||
raw = await mcp_call("task_get", {"taskId": task_id})
|
raw = await mcp_call("task_get", {"taskId": task_id})
|
||||||
data = json.loads(raw)
|
data = json.loads(raw)
|
||||||
comments = data.get("comments") or data.get("feedback", "") or ""
|
submission = data.get("submission", data)
|
||||||
|
# Приоритет: submission.grade.feedback → data.feedback → data.comments
|
||||||
|
comments = (
|
||||||
|
(submission.get("grade") or {}).get("feedback", "")
|
||||||
|
or submission.get("feedback", "")
|
||||||
|
or data.get("feedback", "")
|
||||||
|
or data.get("comments", "")
|
||||||
|
or ""
|
||||||
|
)
|
||||||
if isinstance(comments, list):
|
if isinstance(comments, list):
|
||||||
comments = "\n".join(
|
comments = "\n".join(
|
||||||
c.get("text", c.get("content", str(c))) for c in comments if c
|
c.get("text", c.get("content", str(c))) for c in comments if c
|
||||||
|
|||||||
Reference in New Issue
Block a user