# Cambios realizados - 2026-09-10

## Resumen
Unificacion de la calificacion del modulo Reacciones Quimicas (4.1) en una sola nota final.

## Cambios en el codigo

### reacciones_grader.py
- Agregada funcion nota_modulo(): calcula la nota final unificada sumando puntos obtenidos y dividiendo entre puntos totales (25), aplicando descuento por incidentes
- Modificada funcion calificar_examen(): ahora incluye campo nota_final con la nota unificada del modulo

### reacciones_cdt.py
- Modificado encabezado CSV: eliminada columna Tema, ahora es No,Apellidos,Nombres,Carrera,Puntos,Posibles,Nota
- Actualizada funcion _siguiente_correlativo(): cuenta filas en lugar de buscar tema especifico
- Modificada funcion guardar_reacciones(): guarda una sola fila por estudiante con nota unificada en lugar de 4 filas

### templates/reacciones-quimicas.html
- Actualizada funcion JavaScript de resultados: ahora muestra una sola nota final en lugar de tabla con 4 temas

### test_reacciones_grader.py
- Agregadas pruebas para nota_modulo(): perfecta, con incidentes, parcial y vacia
- Actualizadas pruebas de calificar_examen(): verifican campo nota_final

### test_reacciones_api.py
- Actualizadas pruebas para reflejar una sola fila por estudiante en lugar de 4
- Ajustados indices de columnas en pruebas de CSV

### qa_informe.md
- Actualizada documentacion para reflejar cambios en calificacion y estructura CSV

### contextos
- Actualizado contexto_reacciones_quimicas.md
- Agregadas secciones en contexto_kimi_k3.md y contexto_deepseek_v4.md

## Despliegue
- Archivos copiados a /home/adoniz/apps/quimica/ en servidor
- Servicio Flask reiniciado
- Verificado: pagina responde 200, 19/19 pruebas QA pasan

## Pruebas
- 32/32 pruebas unitarias+integracion pasan localmente
- 19/19 pruebas funnel pasan en produccion
