Tareas #8505
Modal con historial en Mundiales previos
| Estado: | Resuelta | Fecha de inicio: | 2026-02-09 | |
|---|---|---|---|---|
| Prioridad: | Normal | Fecha fin: | ||
| Asignado a: | % Realizado: | 100% | ||
| Categoría: | Desarrollo | Tiempo dedicado: | - | |
| Versión prevista: | Sprint 10 | |||
| App related: | Tipo de funcionalidad: | Nueva funcionalidad |
Descripción
Propuesta de Mejoras para la Tarea #8505: Modal con historial en Mundiales previos¶
Descripción Completa de la Funcionalidad¶
Desarrollo de un modal de historial que se activa al hacer clic en los elementos VS (versus) dentro de las tarjetas de partido en el widget de Calendario Fechas. Este modal mostrará información detallada sobre los enfrentamientos históricos entre equipos en mundiales anteriores, contando la historia de la rivalidad (ya sea corta, larga o de un encuentro totalmente nuevo) para construir la narrativa del partido antes de que comience el juego.
Campos a Actualizar¶
- Nuevo componente
HistoryModal.vuepara mostrar información de historial basado enMyBaseModalcomo base - Modificación del componente
MatchSocialCard.vuepara añadir evento de clic en el elemento VS - Nuevo store
historyStore.jspara manejar la lógica de datos históricos - Actualización del archivo de documentación para incluir el nuevo modal
Estructura y URLs de los Endpoints Necesarios¶
- Endpoint para obtener datos de historial de enfrentamientos:
${configStore.extraDataUrl}/history/${tournament}/${sport}/head-to-head.json - El endpoint debe recibir como parámetros:
team1Id,team2Id,tournamentType(ej. "worldcup") - El formato de respuesta debe seguir la estructura definida en el blueprint del History Modal
- La fuente de datos es un archivo JSON que se actualiza semanalmente (máximo diariamente) mediante un script que exporta datos de una hoja de cálculo de Google
Archivos a Modificar¶
src/components/sports/football/MatchSocialCard.vue- Añadir evento de clic en VSsrc/components/widgets/CalendarWidget.vue- Integrar la lógica de apertura del modalsrc/components/modals/HistoryModal.vue- Nuevo componente para el modal de historial basado enMyBaseModalsrc/stores/history.js- Nuevo store para manejar datos de historialsrc/composables/useModal.js- Asegurar compatibilidad con el nuevo tipo de modaldocs/widgets-documentation.md- Actualizar documentación con el nuevo modal
Pasos Requeridos para Completar la Tarea¶
- Crear el store
historyStorecon la lógica para cargar datos de historial desdeextraDataUrl - Implementar el componente
HistoryModal.vuebasado enMyBaseModalsiguiendo el blueprint especificado - Modificar
MatchSocialCard.vuepara detectar clics en el elemento VS y disparar el modal - Actualizar
CalendarWidget.vuepara integrar la lógica de apertura del modal de historial - Probar la funcionalidad con diferentes combinaciones de equipos
- Validar que los datos se obtengan correctamente desde la fuente externa
extraDataUrl - Asegurar la responsividad y accesibilidad del modal
- Documentar la nueva funcionalidad
Requisitos de Seguridad¶
- Validar que los IDs de equipos sean seguros antes de usarlos en solicitudes
- Sanitizar cualquier contenido dinámico mostrado en el modal
- Asegurar que las URLs de origen sean confiables
Requisitos de Performance¶
- Implementar estrategias de caché apropiadas que se alineen con la frecuencia de actualización semanal del archivo JSON
- Manejar la invalidación de caché cuando se actualice el archivo
- Usar lazy loading para imágenes grandes en el modal
- Asegurar tiempos de carga rápidos (<2 segundos) para el contenido del modal
- Implementar mecanismos de fallback si el archivo JSON no está disponible temporalmente
Contenido del History Modal Blueprint¶
Estructura del Modal:¶
- Cabecera de Confrontación: Presenta a los protagonistas con sus respectivos nombres y banderas, utilizando un círculo central para establecer la naturaleza del duelo
- Tablero de Estadísticas Generales (KPIs): Utiliza un sistema de tarjetas para desglosar los datos históricos de forma cuantitativa (total de partidos, victorias por equipo, empates)
- Filtros y Navegación Interna: Incluye pestañas para segmentar la información ("Últimos enfrentamientos", "Mundial", etc.)
- Feed de Partidos Recientes: Listado detallado de los juegos previos que incluye fecha exacta, marcador destacado y contexto del torneo
- Sección de contexto histórico
Datos de Entrada:¶
- Dos objetos de equipo (team1 y team2)
- Parámetros de historial (tournamentType, dateRange, etc.)
Componentes de UI:¶
- Pestañas para diferentes vistas de datos
- Tarjetas de estadísticas
- Lista de historial de partidos
- Manejo especial para equipos sin historial previo ("Banner de Debut")
Comportamiento Responsivo:¶
- Pantalla completa en móviles
- Modal centrado en escritorio
- Diseño adaptable a diferentes tamaños de pantalla
Dependencias¶
- El widget debe tener acceso a
configStore.extraDataUrlpara obtener los datos históricos - Los equipos deben tener IDs válidos para realizar la consulta de historial
- El archivo JSON de datos se actualiza semanalmente (máximo diariamente) mediante un script que exporta de una hoja de cálculo de Google
- El nuevo componente debe basarse en
MyBaseModalpara mantener consistencia con otros modales en el sistema
Manejo de Escenarios Especiales¶
Escenario de "Historial Cero":¶
- Si los equipos nunca han jugado, el modal mostrará un "Banner de Debut" con texto sugerido: "¡Duelo inédito! Estas selecciones nunca se han enfrentado en la historia"
- Si no hay historial en un torneo específico pero sí en otros, mostrar: "Será el primer duelo entre ambos en una Copa del Mundo"
Modos de Visualización:¶
- Versión estática: Mostrar la lista completa de encuentros de un solo torneo o varios
- Versión dinámica con pestañas: Permitir al usuario segmentar la importancia de los partidos (por ejemplo, separar partidos de Mundial de todos los partidos amistosos)
Características Adicionales¶
- Soporte multi-idioma (español e inglés como mínimo)
- Personalización de branding, colores y tipografía
- Posibilidad de adaptar el título principal en función del historial que se muestre
- Manejo adecuado de casos donde hay pocos datos (menos de 5 partidos) versus rivalidades históricas extensas (20+ partidos)
- Consistencia visual con el patrón de diseño de
MyBaseModalutilizado en otros modales del sistema
Peticiones relacionadas
Histórico
#1
Actualizado por Luciana Freyre hace alrededor de 1 mes
- Añadido relacionada con Tareas #8504: Historial en Mundiales previos
#2
Actualizado por Anielkis Herrera hace alrededor de 1 mes
- Se actualizó Descripción (diff)
#3
Actualizado por Anielkis Herrera hace alrededor de 1 mes
Enhanced user story and technical requirements added. The original minimal description has been expanded with detailed functional requirements, technical implementation details, UI components, non-functional requirements, acceptance criteria, testing requirements, and dependencies.
#4
Actualizado por Anielkis Herrera hace alrededor de 1 mes
- Se actualizó Descripción (diff)
#5
Actualizado por Anielkis Herrera hace alrededor de 1 mes
- Se actualizó Descripción (diff)
#6
Actualizado por Anielkis Herrera hace alrededor de 1 mes
- Se actualizó Descripción (diff)
#7
Actualizado por Anielkis Herrera hace alrededor de 1 mes
- Se actualizó Descripción (diff)
#8
Actualizado por Anielkis Herrera hace alrededor de 1 mes
- Se actualizó Descripción (diff)
#9
Actualizado por Anielkis Herrera hace alrededor de 1 mes
- Se actualizó Descripción (diff)
#10
Actualizado por Anielkis Herrera hace alrededor de 1 mes
- Se actualizó Descripción (diff)
#11
Actualizado por Anielkis Herrera hace alrededor de 1 mes
- Se actualizó Descripción (diff)
#12
Actualizado por Jeison Varilla hace alrededor de 1 mes
- Categoría establecido a Desarrollo
- Asignado a establecido a Jeison Varilla
Hola
Tomo la tarea para estimacion de tiempo.
Saludos.
#13
Actualizado por Claudia Ale hace alrededor de 1 mes
- Versión prevista establecido a Sprint 10
- Fecha de inicio cambiado 2026-02-05 por 2026-02-09
- Tipo de funcionalidad establecido a Nueva funcionalidad
#14
Actualizado por Claudia Ale hace alrededor de 1 mes
- Estado cambiado Nueva por En curso
#15
Actualizado por Jeison Varilla hace alrededor de 1 mes
- % Realizado cambiado 0 por 40
Hola
Los siguientes puentos contiene los desarrollo entre el 11 y 12 de Febrero 2026:
- Accion para el modal de historico
- Reutilizacion de MyBaseModal para los historicos
- Cambios y reutilizacion en FixtureItem.vue para manejar el modal y desactivar elementos que no se requieren.
- Se crea Componente para MatchHistory para contener la logica general del modal de historial de enfrentamientos.
- Se crea componente MatchStatsCard para manejar la estadisticas generales.
Saludos.-
#16
Actualizado por Jeison Varilla hace alrededor de 1 mes
- % Realizado cambiado 40 por 50
Hola
- Reunion con cyn buscando reutiliza un componente para la seccion de estadisticas del momdal
- Creacion de componentes con logica general para la seccion 3 de ultimos enfrentamiento y mmundial
- Ajustes de bug variados.
Saludos.-
#17
Actualizado por Jeison Varilla hace alrededor de 1 mes
- % Realizado cambiado 50 por 60
Hola
Nueva funcionalidad de ultimos enfrentamientos y mundial.
centralizando componentes para el historial
saludos.
#18
Actualizado por Jeison Varilla hace 30 días
- % Realizado cambiado 60 por 80
Hola
- Adaptando las estadisticas a que use nuevo componente gegneral para cards
- Se agrega la logica para ulitmos enfrentamiento con nuevo componente y composable para obtener datos, con logica de inversion de equipos por ser sport basball y su formato normal para otros deportes.
Esta peticion no esta clara.
"Será el primer duelo entre ambos en una Copa del Mundo"
Saludos.-
#19
Actualizado por Noelia Rogantini hace 30 días
- Añadido relacionada con Tareas #8545: Ajuste de estilos - Modal con historial en Mundiales previos
#20
Actualizado por Jeison Varilla hace 27 días
- % Realizado cambiado 80 por 90
Hola
Se agregaron las funcionalidad para los stats, inversiones de score y mensaja de primera vez.
Saludos.-
#21
Actualizado por Jeison Varilla hace 27 días
- Añadido relacionada con Tareas #8549: Testing Calendario - Modal de Historial de enfrentamientos
#22
Actualizado por Jeison Varilla hace 23 días
Hola
Se agrega un fix al componente basetabs para que agregue el evento cursos pointer dinamicamente, si existe mas de uno lo hara, sino, el cursos sera default.
Saludos,-
#23
Actualizado por Jeison Varilla hace 20 días
- % Realizado cambiado 90 por 100
hola
Reporte de soporte con un ok, 100% terminado de testing.
Saludos
#24
Actualizado por Jeison Varilla hace 20 días
- Estado cambiado En curso por Resuelta