new shems

This commit is contained in:
2026-04-01 14:18:52 +05:00
parent 4e9b89fbe5
commit 22bbc3a0a6
15 changed files with 1793 additions and 133 deletions

View File

@@ -8,6 +8,7 @@ from bd import make_engine
from bd.tables.poll import Poll
from bd.tables.question import Question
from bd.tables.response import Response, Answer
from bd.tables.scale import ScaleDimension
router = APIRouter(tags=["responses"], prefix="/polls")
@@ -77,7 +78,26 @@ def submit_response(poll_id: str, payload: ResponseIn):
session.add(answer)
session.commit()
session.refresh(resp)
return {"id": str(resp.id)}
# Автоматически считаем радарный результат, если у теста есть оси
has_dimensions = (
session.query(ScaleDimension)
.filter(ScaleDimension.poll_id == pid)
.first()
) is not None
radar_id: Optional[str] = None
if has_dimensions:
try:
from route.radar_crud import compute_radar
radar = compute_radar(resp.id, session)
radar_id = str(radar.id)
except Exception:
pass # не ломаем сдачу, если расчёт не удался
result: dict = {"id": str(resp.id)}
if radar_id:
result["radar_result_id"] = radar_id
return result
@router.get("/responses/")