Corregir Duplicados en respuestas 1.0.24 Backend
This commit is contained in:
@@ -880,8 +880,34 @@ def create_answer(
|
||||
elif answer.status == "warning":
|
||||
points_earned = int(question.points * 0.5)
|
||||
|
||||
# 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.dict(),
|
||||
**answer_data,
|
||||
points_earned=points_earned
|
||||
)
|
||||
db.add(db_answer)
|
||||
|
||||
Reference in New Issue
Block a user