Skip to content

Excluye la cuenta admin de ganadores de jornada, campeón acumulado y PDF - #7

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

Excluye la cuenta admin de ganadores de jornada, campeón acumulado y PDF#7
danguz80 merged 1 commit into
mainfrom
claude/libertadores-penalties-admin-s9py1b

Conversation

@danguz80

Copy link
Copy Markdown
Owner

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 en ganadoresJornadaLibertadores.js, en tres lugares 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; de paso 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: ninguna de las dos variantes de esa consulta filtraba por rol.

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

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.
Copilot AI lite review requested due to automatic review settings August 21, 2026 03:23
@netlify

netlify Bot commented Aug 21, 2026

Copy link
Copy Markdown

Deploy Preview for pollafutbol canceled.

Name Link
🔨 Latest commit fdf12f3
🔍 Latest deploy log https://app.netlify.com/projects/pollafutbol/deploys/6a87c4bc755b62000834962d

@danguz80
danguz80 merged commit 30f2274 into main Aug 21, 2026
1 check was pending

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.

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
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