Skip to content

Libertadores J8: el equipo pronosticado que avanza usa ida real + vuelta pronosticada - #21

Merged
danguz80 merged 1 commit into
mainfrom
claude/libertadores-penalties-admin-s9py1b
Aug 26, 2026
Merged

Libertadores J8: el equipo pronosticado que avanza usa ida real + vuelta pronosticada#21
danguz80 merged 1 commit into
mainfrom
claude/libertadores-penalties-admin-s9py1b

Conversation

@danguz80

Copy link
Copy Markdown
Owner

Ajuste final sobre el modelo de J8, con la aclaración del usuario.

El modelo definitivo

  • Equipo pronosticado que avanza (J8): resultado real de la ida (J7) + lo que el usuario pronosticó en la vuelta (J8). Misma base que ya usa la pantalla de carga de pronósticos para decidir cuándo pedirle penales (PR Libertadores J8: recuadro de penales vuelve a comparar contra ida real #20).
  • Equipo real que avanza: sigue siendo, como siempre, 100% resultados reales de J7 + J8.

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

…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
Copilot AI lite review requested due to automatic review settings August 26, 2026 14:53
@danguz80
danguz80 merged commit fb8e920 into main Aug 26, 2026
@netlify

netlify Bot commented Aug 26, 2026

Copy link
Copy Markdown

Deploy Preview for pollafutbol ready!

Name Link
🔨 Latest commit f5e8465
🔍 Latest deploy log https://app.netlify.com/projects/pollafutbol/deploys/6a8efdec1efc320008fb53fa
😎 Deploy Preview https://deploy-preview-21--pollafutbol.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 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)
} - {
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants