develop #1

Merged
gitea merged 44 commits from develop into main 2025-11-26 01:15:20 +00:00
Showing only changes of commit cfef4f6f89 - Show all commits

View File

@@ -880,14 +880,40 @@ def create_answer(
elif answer.status == "warning":
points_earned = int(question.points * 0.5)
db_answer = models.Answer(
**answer.dict(),
points_earned=points_earned
)
db.add(db_answer)
db.commit()
db.refresh(db_answer)
return db_answer
# Buscar si ya existe una respuesta para esta inspección y pregunta
existing_answer = db.query(models.Answer).filter(
models.Answer.inspection_id == answer.inspection_id,
models.Answer.question_id == answer.question_id
).first()
if existing_answer:
# Actualizar la respuesta existente
# Si status es pass/fail, no poner valor por defecto en answer_value
if answer.status in ["pass", "fail"] and not answer.answer_value:
existing_answer.answer_value = None
else:
existing_answer.answer_value = answer.answer_value
existing_answer.status = answer.status
existing_answer.comment = getattr(answer, "comment", None)
existing_answer.ai_analysis = getattr(answer, "ai_analysis", None)
existing_answer.is_flagged = getattr(answer, "is_flagged", False)
existing_answer.points_earned = points_earned
existing_answer.updated_at = datetime.utcnow()
db.commit()
db.refresh(existing_answer)
return existing_answer
else:
# Si status es pass/fail y no hay valor, no poner valor por defecto en answer_value
answer_data = answer.dict()
if answer.status in ["pass", "fail"] and not answer.answer_value:
answer_data["answer_value"] = None
db_answer = models.Answer(
**answer_data,
points_earned=points_earned
)
db.add(db_answer)
db.commit()
db.refresh(db_answer)
return db_answer
@app.put("/api/answers/{answer_id}", response_model=schemas.Answer)