diff --git a/backend/app/main.py b/backend/app/main.py
index 7d25d55..fd5cbd4 100644
--- a/backend/app/main.py
+++ b/backend/app/main.py
@@ -204,7 +204,7 @@ def send_completed_inspection_to_n8n(inspection, db):
# No lanzamos excepción para no interrumpir el flujo normal
-BACKEND_VERSION = "1.0.77"
+BACKEND_VERSION = "1.0.78"
app = FastAPI(title="Checklist Inteligente API", version=BACKEND_VERSION)
# S3/MinIO configuration
@@ -1369,6 +1369,34 @@ def generate_inspection_pdf(inspection_id: int, db: Session) -> str:
textColor=colors.HexColor('#64748b')
)
+ # Estilos mejorados para preguntas y respuestas
+ question_style = ParagraphStyle(
+ 'QuestionStyle',
+ parent=styles['Normal'],
+ fontSize=11,
+ textColor=colors.HexColor('#1f2937'),
+ spaceAfter=3,
+ fontName='Helvetica-Bold'
+ )
+
+ answer_style = ParagraphStyle(
+ 'AnswerStyle',
+ parent=styles['Normal'],
+ fontSize=10,
+ textColor=colors.HexColor('#374151'),
+ spaceAfter=4
+ )
+
+ comment_style = ParagraphStyle(
+ 'CommentStyle',
+ parent=styles['Normal'],
+ fontSize=9,
+ textColor=colors.HexColor('#6b7280'),
+ spaceAfter=6,
+ leftIndent=10,
+ rightIndent=10
+ )
+
# Obtener datos
mechanic = db.query(models.User).filter(models.User.id == inspection.mechanic_id).first()
checklist = db.query(models.Checklist).filter(models.Checklist.id == inspection.checklist_id).first()
@@ -1618,9 +1646,9 @@ def generate_inspection_pdf(inspection_id: int, db: Session) -> str:
# Tabla de pregunta/respuesta
question_data = []
- # Fila 1: Pregunta
+ # Fila 1: Pregunta con estilo mejorado
question_data.append([
- Paragraph(f"{status_icon} {question.text}", info_style),
+ Paragraph(f"{status_icon} {question.text}", question_style),
])
# Fila 2: Respuesta y estado - Convertir valor técnico a etiqueta legible
@@ -1628,16 +1656,28 @@ def generate_inspection_pdf(inspection_id: int, db: Session) -> str:
question_data.append([
Table([
[
- Paragraph(f"Respuesta: {answer_text}", small_style),
- Paragraph(f"Estado: {ans.status.upper()}", ParagraphStyle('status', parent=small_style, textColor=status_color, fontName='Helvetica-Bold'))
+ Paragraph(f"Respuesta: {answer_text}", answer_style),
+ Paragraph(f"Estado: {ans.status.upper()}", ParagraphStyle('status', parent=answer_style, textColor=status_color, fontName='Helvetica-Bold'))
]
], colWidths=[120*mm, 50*mm])
])
- # Fila 3: Comentario (si existe)
+ # Fila 3: Comentario mejorado (si existe)
if ans.comment:
+ comment_text = ans.comment
+
+ # Limpiar prefijo de IA si existe
+ if "Análisis IA (" in comment_text and "): " in comment_text:
+ # Remover "Análisis IA (98% confianza): "
+ comment_text = comment_text.split("): ", 1)[1] if "): " in comment_text else comment_text
+
+ # Separar análisis y recomendaciones con salto de línea
+ if "Recomendaciones:" in comment_text or "Recomendación:" in comment_text:
+ comment_text = comment_text.replace("Recomendaciones:", "
Recomendaciones:")
+ comment_text = comment_text.replace("Recomendación:", "
Recomendación:")
+
question_data.append([
- Paragraph(f"Comentario: {ans.comment}", small_style)
+ Paragraph(f"Comentario: {comment_text}", comment_style)
])
# Fila 4: Imágenes (si existen)