Миграция questions.ai_hint и подсказки в редакторе теста

- Alembic 0003: колонка ai_hint (TEXT NULL)
- API черновика: отдаём aiHint, сохраняем из payload
- Карточка вопроса: textarea подсказки для прохождения

Made-with: Cursor
This commit is contained in:
Константин Лебединский
2026-04-29 21:50:19 +05:00
parent fba11ff4cc
commit 09d996ead0
5 changed files with 70 additions and 3 deletions
+1
View File
@@ -51,6 +51,7 @@ def load_questions_for_version(session, test_version_id, *, include_correct: boo
'text': q.text,
'questionOrder': q.question_order,
'hasMultipleAnswers': bool(q.has_multiple_answers),
'aiHint': (q.ai_hint or '').strip() or None,
'options': options,
})
return out
+6 -1
View File
@@ -122,12 +122,17 @@ def _replace_version_content(session: Session, version: TestVersion, payload: di
questions_payload = payload.get('questions') or []
for i, qp in enumerate(questions_payload):
q_text = (qp.get('text') or '').strip()
hint_in = qp.get('aiHint')
if hint_in is not None:
hint_val = (str(hint_in).strip() or None)
else:
hint_val = old_hints.get(q_text)
new_q = Question(
test_version_id=version.id,
text=q_text,
question_order=qp.get('question_order') or (i + 1),
has_multiple_answers=bool(qp.get('hasMultipleAnswers')),
ai_hint=old_hints.get(q_text),
ai_hint=hint_val,
)
session.add(new_q)
session.flush()