Excluye la cuenta admin de ganadores de jornada, campeón acumulado y PDF - #7
Merged
Merged
Conversation
El filtro rol != 'admin' ya estaba aplicado en las pantallas de ranking que ve la gente (rankingsLibertadores.js), pero faltaba en tres lugares de ganadoresJornadaLibertadores.js que SÍ pueden asignar o mostrar a alguien como ganador: 1. POST /:jornadaNumero (calcular ganador de jornada): el pool de candidatos solo filtraba 'activo = true', sin excluir rol admin. 2. POST /acumulado (campeón del ranking acumulado final): mismo caso, más se agrega el JOIN a libertadores_partidos para descartar pronósticos huérfanos, en línea con el resto de los rankings. 3. La tabla 'Ranking Acumulado' dentro del PDF que se genera y se envía por email al cerrar una jornada (generarPDFLibertadoresConGanadores): ambas variantes de esa consulta no filtraban por rol. Esto importa en la práctica: si la cuenta admin llega a tener puntos cargados por error (como pasó con pronósticos de octavos cargados por accidente con esa cuenta), antes podía terminar declarada ganadora de una jornada, candidata a campeón del acumulado, o aparecer en el PDF que reciben todos los jugadores por email — pese a que la regla del torneo es que el admin nunca participa del ranking.
✅ Deploy Preview for pollafutbol canceled.
|
There was a problem hiding this comment.
Pull request overview
Este PR corrige la inconsistencia en la exclusión de la cuenta admin (rol != 'admin') para que no pueda aparecer como candidata/ganadora de jornada, campeona del acumulado final, ni en el ranking acumulado del PDF al cerrar una jornada.
Changes:
- Se excluye explícitamente
u.rol = 'admin'al calcular el campeón del acumulado total (POST /acumulado). - Se excluye
rol = 'admin'del pool de candidatos al calcular ganadores por jornada (POST /:jornadaNumero). - Se filtra
u.rol != 'admin'en ambas variantes de la consulta de “Ranking Acumulado” dentro del PDF.
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+64
to
67
| -- rol != 'admin': el campeón del acumulado final nunca puede ser la | ||
| -- cuenta de administrador, aunque tenga puntos cargados por error. | ||
| WHERE u.activo = true AND u.rol != 'admin' | ||
| ORDER BY puntos_acumulados DESC, u.nombre ASC |
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.
Causa real de la confusión de estas últimas rondas
Hay dos cuentas "Daniel": Daniel Guzman (usuario normal, carga pronósticos) y Daniel Guzmán Sagredo (admin, solo debería cargar resultados reales). En Jornada 8 se cargaron pronósticos por error también con la cuenta admin. Verificado con datos reales (vía un endpoint de diagnóstico temporal): los números de puntos y ranking eran matemáticamente correctos todo este tiempo — no había ningún bug de cálculo ni duplicación. La confusión fue comparar el desglose de una cuenta contra el ranking de la otra.
Dicho esto, esto expuso un bug real: el filtro
rol != 'admin'que excluye a la cuenta admin de los rankings no estaba aplicado en todos lados.Dónde faltaba
Ya estaba bien aplicado en
rankingsLibertadores.js(lo que ve la gente en pantalla). Faltaba enganadoresJornadaLibertadores.js, en tres lugares que sí pueden asignar o mostrar a alguien como ganador:/:jornadaNumero(calcular ganador de jornada): el pool de candidatos solo filtrabaactivo = true, sin excluirrol = 'admin'./acumulado(campeón del ranking acumulado final): mismo caso; de paso se agrega elJOINalibertadores_partidospara descartar pronósticos huérfanos, en línea con el resto de los rankings.Por qué importa
Si la cuenta admin llega a tener puntos cargados por error (como pasó ahora con pronósticos de octavos), antes podía terminar declarada ganadora de una jornada, candidata a campeón del acumulado, o aparecer en el PDF que reciben todos los jugadores por email — pese a que la regla del torneo es que el admin nunca participa del ranking.
🤖 Generated with Claude Code
Generated by Claude Code