new shems
This commit is contained in:
@@ -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/")
|
||||
|
||||
Reference in New Issue
Block a user