Count of badges on user page?

Would it be possible to get a column added for badge count? I have a lot of badge…um…hounds, yeah that’s the PC word, and they want to see at a glance who is in the lead in terms of collecting the most badges.

5 curtidas

1 curtida

It’s not planned or on any roadmaps at the moment.

Thanks for the info - has anyone else asked for something like this, to your knowledge, or am I the lone requestor :slight_smile:

Eu gostaria muito, muito disso também.

Ruby é uma língua estrangeira estranha para mim, e SQL além de simples SELECT e talvez GROUP BY me dá urticária, mas… pelo que entendi, as coisas na página do usuário podem ser da tabela directory_items, que é construída somando e contando coisas em várias tabelas de usuários, em directory_item.rb.

Em user_stat.rb, encontro um distinct_badge_count, que seria bom se fosse para todos os tempos, mas queremos os vários períodos de tempo do placar, e também para este propósito provavelmente não queremos distinct de qualquer maneira.

Eu acho que talvez tudo o que seja necessário seja adicionar à gigantesca consulta SQL para contar a partir de user_badges onde a data granted_at é posterior a since?

Ah, embora eu acho que também precisa verificar e contar apenas os emblemas que estão habilitados.

2 curtidas

Não tenho certeza sobre a dificuldade técnica de adicionar contagens de selos à página de usuários, mas agora que permitimos que itens de diretório opcionais sejam adicionados à página de usuários, parece que as contagens de selos seriam uma adição lógica. Isso ajudaria a tornar a página de usuários mais funcional como um placar.

Apenas uma ideia, mas adicionar uma coluna badges_received a directory_items seria uma maneira possível de abordar o problema?

2 curtidas

Estou procurando uma contagem de todos os tempos, então, graças à sua orientação, extraí esta consulta do user_stat.rb e a executei no explorador de dados, e ela me deu uma lista de todos os usuários com a contagem de seus emblemas:

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 curtida