Libertadores J8: el equipo pronosticado que avanza usa ida real + vuelta pronosticada - #21
Merged
Merged
Conversation
…lta pronosticada Ajuste final sobre el modelo, aclarado por el usuario: el equipo PRONOSTICADO que avanza en J8 se define con el resultado REAL de la ida (J7) + lo que el usuario pronostico en la vuelta (J8) -- la MISMA base que ya usa la pantalla de carga de pronosticos para decidir cuando pedirle penales (PR #20). El equipo REAL que avanza sigue siendo, como siempre, 100% resultados reales de J7 + J8. Motivo del cambio (sobre el PR #19, que uso el pronostico de J7 del usuario en vez del resultado real para el lado 'pronosticado'): al no coincidir esa base con la que decide cuando pedir penales en pantalla, quedaban muchos cruces con empate global 'pronosticado puro' pero sin penales cargados (porque nunca se le pidieron, ya que esa pantalla seguia comparando contra la ida real). Usando la misma base en los dos lados -- pedir penales y calcular el equipo pronosticado -- un empate en un lado es siempre un empate en el otro, y el hueco de cruces 'sin definir' se cierra. Cambios: - calcularPuntosLibertadores.js: vuelve a usar el resultado real de la ida (partidoIda.goles_local/goles_visita) para el marcador 'pronosticado' de J8. Se saca la consulta al pronostico de J7 del usuario que ya no hace falta. - clasificacionLibertadores.js: mismo cambio en su copia independiente del calculo (la que alimenta /pronosticos). - ClasificacionLibertadores.jsx: el texto 'Global pronosticado' en la fila de partidos usa ida real para J8 (con la etiqueta '(ida real J7)'), y sigue usando la ida pronosticada del propio usuario para J9/J10 (esas jornadas no cambian: la ida ahi es de la misma jornada, no arranca 'desde cero' como J8). No se toca JornadaLibertadores.jsx (PR #20): el recuadro de penales y la generacion de penales al azar ya comparaban contra la ida real, que es exactamente la base que ahora tambien usa el calculo de clasificados -- quedan consistentes entre si. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01C4yh8aCiR2MaBpXBnxZECH
✅ Deploy Preview for pollafutbol ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
There was a problem hiding this comment.
🟡 Changes recommended
Hay casos con resultado real de ida (J7) aún NULL donde el código/UI pueden tratarlo como 0-0 y definir/mostrar clasificados incorrectamente en J8.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
Este PR alinea el cálculo del equipo pronosticado que avanza en J8 con la misma base que usa la UI para decidir si debe pedir penales: ida real (J7) + vuelta pronosticada (J8), manteniendo el cálculo del equipo real que avanza como 100% resultados reales.
Changes:
- Ajusta el armado del global “pronosticado” de J8 en endpoints de backend para usar la ida real.
- Mantiene el global real en base a resultados reales y actualiza la UI para reflejar “ida real J7” en J8.
- Evita inconsistencias entre “pedir penales” y “definir clasificado pronosticado” para J8.
File summaries
| File | Description |
|---|---|
| server/routes/calcularPuntosLibertadores.js | Cambia el global pronosticado de J8 a ida real + vuelta pronosticada para el cálculo de puntos/clasificación. |
| server/routes/clasificacionLibertadores.js | Replica el cambio en /pronosticos, que alimenta la tabla/vista de pronósticos y clasificados. |
| client/src/pages/ClasificacionLibertadores.jsx | Actualiza el texto/cálculo mostrado para “Global pronosticado” en J8, indicando “(ida real J7)”. |
Review details
- Files reviewed: 3/3 changed files
- Comments generated: 3
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+290
to
294
| // Equipo LOCAL de VUELTA: goles en VUELTA (pronosticados por el | ||
| // usuario) + sus goles en IDA (resultado REAL de J7) | ||
| const pronosticoGlobalLocal = pronostico_local + (partidoIda.goles_visita || 0); | ||
| const pronosticoGlobalVisita = pronostico_visita + (partidoIda.goles_local || 0); | ||
|
|
Comment on lines
349
to
355
| if (partidoIda.resultado_ida_local !== null && partidoIda.resultado_ida_visita !== null) { | ||
| pronosticoGlobalLocal = row.pronostico_local + (partidoIda.resultado_ida_visita || 0); | ||
| pronosticoGlobalVisita = row.pronostico_visita + (partidoIda.resultado_ida_local || 0); | ||
|
|
||
| resultadoGlobalLocal = row.resultado_local + (partidoIda.resultado_ida_visita || 0); | ||
| resultadoGlobalVisita = row.resultado_visita + (partidoIda.resultado_ida_local || 0); | ||
| } |
Comment on lines
+2227
to
2231
| <strong>Global pronosticado{jornada === 8 ? ' (ida real J7)' : ''}:</strong> {pronostico.partido.local.nombre} { | ||
| jornada === 8 | ||
| ? (pronostico.pronostico.local || 0) + (pronostico.partido_ida.resultado_ida_visita || 0) | ||
| : (pronostico.pronostico.local || 0) + (pronostico.partido_ida.pronostico_ida_visita || 0) | ||
| } - { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ajuste final sobre el modelo de J8, con la aclaración del usuario.
El modelo definitivo
Por qué (sobre el PR #19)
El PR #19 usó el pronóstico de J7 del propio usuario (no el resultado real) para el lado "pronosticado". Al no coincidir esa base con la que decide cuándo pedir penales en pantalla (real ida + vuelta pronosticada), quedaban muchos cruces con empate global "pronosticado puro" pero sin penales cargados — nunca se los pidieron, porque esa pantalla seguía comparando contra la ida real. Usando la misma base en los dos lados (pedir penales y calcular el equipo pronosticado), un empate en un lado es siempre un empate en el otro, y se cierra el hueco de cruces "sin definir".
Cambios
calcularPuntosLibertadores.js: vuelve a usar el resultado real de la ida para el marcador "pronosticado" de J8.clasificacionLibertadores.js: mismo cambio en su copia independiente del cálculo (la que alimenta/pronosticos).ClasificacionLibertadores.jsx: el texto "Global pronosticado" en la fila de partidos usa ida real para J8 (con la etiqueta "(ida real J7)"), y sigue usando la ida pronosticada del propio usuario para J9/J10 (esas jornadas no cambian: ahí la ida es de la misma jornada, no arranca "desde cero" como J8).No se toca
JornadaLibertadores.jsx(PR #20): el recuadro de penales y la generación de penales al azar ya comparaban contra la ida real, que es exactamente la base que ahora también usa el cálculo de clasificados — quedan consistentes entre sí.Importante
Hay que volver a presionar "Calcular Puntos" para la jornada 8 después de este deploy.
Generated by Claude Code