fbpx

Copérnico

Columnas personalizadas

Una columna personalizada es un componente de Copérnico que permite ejecutar funciones sobre los datos. Esta función se ejecuta únicamente en el ordenador que se esté usando. Las columnas personalizadas te permiten agrupar campos de participantes, como el nombre y apellidos, calcular edades, 0 sumar tiempos de distintos tramos.

Las columnas personalizadas es un componente complicado para el cual es necesario tener conocimientos de Javascript para ejecutar las funciones. Si no eres programador, no te preocupes porque te vamos a dejar definidas las columnas personalizadas que consideramos más relevantes y usadas.

¿Cómo se crea una columna personalizada?

  1. En el menú «Participants», haz clic en «Gestionar columnas personalizadas».
  2. Haz clic en «Crear nueva columna».
  3. Deberás proporcionar un nombre a la columna para posteriormente activarla.

 

Si sabes programar en Javascript solo tendrás que introducir las funciones que quieres que ejecute tu columna personalizada. Pero si no es así, te definimos las funciones más utilizadas y puedes copiarla en el cuadro de texto para pegarla en Copérnico

Suma de kilómetros: esta columna sumara todos los km recorridos de cada una de las participaciones de ese participante.la ejecución perfecta para esta función es que la suma la haga de km en km y para ello debes configurar los splits de 1 km de distancia entre ellos.Copia y pega:

function column( athlete, race, event, dataSet, util ) {
const atletasConElMismoChip = dataSet.filter(atleta => atleta.chip[0] == athlete.chip[0]);
const atletasConElMismoChipNoDescalificados = atletasConElMismoChip.filter(atleta => !(['quarantine', 'disqualified'].includes(atleta.status)));
const differentStartTimes = atletasConElMismoChipNoDescalificados.pluck('manualStartTime').unique();
const atletasFiltradosSinStartTimesRepetidos = differentStartTimes.map(manualStartTime => atletasConElMismoChipNoDescalificados.findByProperty('manualStartTime', manualStartTime));
const tiemposDeLosAtletasConElMismoChip = atletasFiltradosSinStartTimesRepetidos.pluck('times').map(timeSet => Object.values(timeSet)).flat().filter(time => time.distance);
const distanciaEntreSplits = 1000;
return tiemposDeLosAtletasConElMismoChip.length * distanciaEntreSplits;
}

Suma de tiempos de tramos: está columna sumará los tiempos, por lo que para obtener las posiciones tendrás que ordenar esta columna y utilizar la columna ordinal (#) para llevarla a los presets que vayas a utilizar. «T1» será tu primer tramo (nombre de tramo), «Bike» tu segundo tramo, y «T2» tu tercer tramo. Copia y pega:

function column( athlete, race, event, dataSet, util ) {
return (athlete.rankings["T1"].time + athlete.rankings["Bike"].time + athlete.rankings["T2"].time).toHHMMSS();
}

Diferencia con el primero: esta columna calculará la diferencia de tiempo entre el primer llegado a meta y cada uno de los participantes. Copia y pega:

function column( athlete, race, event, dataSet, util ) {
return athlete.rankings[util.getFullInterval(event)] ? (athlete.rankings[util.getFullInterval(event)].time - util.getTopRankingTime(util.getFullInterval(event), {event: athlete.event})).toHHMMSS()
: null
}

 

Diferencia con el primero por categoría: esta columna calculará la diferencia de tiempo entre el primer llegado a meta de su categoría y el participante. Copia y pega:

function column( athlete, race, event, dataSet, util ) {
return athlete.rankings[util.getFullInterval(event)] ? (athlete.rankings[util.getFullInterval(event)].time - util.getTopRankingTime(util.getFullInterval(event), {event: athlete.event, category: athlete.category})).toHHMMSS()
: null
}

 

Diferencia con el primero por género: esta columna calculará la diferencia de tiempo con el primero por género: tiempo de diferencia entre el primer llegado a meta másculino, femenino o mixto y el participante. Copia y pega:

function column( athlete, race, event, dataSet, util ) {
return athlete.rankings[util.getFullInterval(event)] ? (athlete.rankings[util.getFullInterval(event)].time - util.getTopRankingTime(util.getFullInterval(event), {event: athlete.event, gender: athlete.gender})).toHHMMSS()
: null
}

 

Código con los estados de los atletas: esta columna mostrará el código que necesites para cada uno de los estados de los participantes. Por supuesto si necesitas otros códigos puedes editarlo. Ten en cuenta que los atletas finalizados no tienen código asignado.

function column( athlete, race, event, dataSet, util ) {
const statusCodes = {
"finished":"",
"retired":"DNF",
"quarantine":"DNF",
"disqualified":"DQ",
"notstarted":"DNS",
}
return statusCodes[athlete.status] ? statusCodes[athlete.status] : null

}

Gestión de columnas personalizadas

Existen varios niveles en las columnas personalizadas:

  • Más utilizadas: aquí se iremos añadiendo las columnas que sabemos que son las más utilizadas por todos los usuarios de Copérnico.
  • Columnas activadas para la carrera: son las columnas que has marcado como activas para la carrera en la que estás trabajando en este momento.
  • Mis columnas: son las que has creado tú para utilizarlas en cualquiera de tus pruebas.
  • Otras columnas personalizadas de usuarios de mi empresa: aquí podrás ver cualquier columna que hayan creado otros usuarios de tu empresa.

like / dislike formulario

Cuéntanos qué no te gusta. Ayúdanos a mejorar.

like form


Artículos relacionados