¿Conteo de insignias en la página de usuario?

¿Sería posible añadir una columna para el recuento de insignias? Tengo muchos…um…perros de insignias, sí, ese es el término correcto en PC, y quieren ver de un vistazo quién va a la cabeza en cuanto a la recolección de más insignias.

5 Me gusta

1 me gusta

No está planificado ni figura en ninguna hoja de ruta en este momento.

Gracias por la información. ¿Sabes si alguien más ha pedido algo así, o soy el único que lo solicita? :slight_smile:

Yo también querría realmente mucho esto.

Ruby es un idioma extranjero extraño para mí, y SQL más allá de un simple SELECT y quizás GROUP BY me da urticaria, pero… según entiendo, las cosas en la página de usuario pueden ser de la tabla directory_items, que se construye sumando y contando cosas en varias tablas de usuario, en directory_item.rb.

En user_stat.rb, encuentro un distinct_badge_count, que estaría bien si fuera para siempre, pero queremos los diversos períodos de tiempo de la tabla de clasificación, y también para este propósito probablemente no queramos distinct de todos modos.

Creo que tal vez todo lo que se necesita es añadir a la gigantesca consulta SQL para contar desde user_badges donde la fecha granted_at sea posterior a since.

Oh, aunque supongo que también necesita verificar y contar solo las insignias que están habilitadas.

2 Me gusta

No estoy seguro de la dificultad técnica de agregar recuentos de insignias a la página de usuarios, pero ahora que permitimos agregar elementos de directorio opcionales a la página de usuarios, parece que los recuentos de insignias serían una adición lógica. Ayudaría a que la página de usuarios funcione más como una tabla de clasificación.

Solo es una idea, pero ¿sería posible agregar una columna badges_received a directory_items como una forma de abordar el problema?

2 Me gusta

Estoy buscando un recuento de todos los tiempos, así que gracias a tu dirección saqué esta consulta de user_stat.rb y la ejecuté en el explorador de datos y me dio una lista de todos los usuarios con su recuento de insignias:

SELECT users.id user_id, COUNT(distinct user_badges.badge_id) distinct_badge_count
        FROM users
        LEFT JOIN user_badges ON user_badges.user_id = users.id
                              AND (user_badges.badge_id IN (SELECT id FROM badges WHERE enabled))
        GROUP BY users.id
        ORDER BY distinct_badge_count DESC
1 me gusta