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

1 Mi Piace

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:

Lo vorrei davvero davvero anche io.

Ruby è una lingua straniera strana per me, e SQL oltre a semplici SELECT e forse GROUP BY mi fa venire l’orticaria, ma… per quanto ne capisco, le cose nella pagina utente possono essere quelle della tabella directory_items, che è costruita sommando e contando cose in varie tabelle utente, in directory_item.rb.

In user_stat.rb, trovo un distinct_badge_count, che andrebbe bene se fosse per sempre, ma noi vogliamo i vari periodi di tempo della classifica, e probabilmente anche per questo scopo non vogliamo distinct.

Penso che forse tutto ciò che serve è aggiungere alla gigantesca query SQL per contare da user_badges dove la data granted_at è successiva a since?

Oh, anche se immagino che debba anche controllare e contare solo i badge che sono abilitati.

2 Mi Piace

Non sono sicuro della difficoltà tecnica dell’aggiunta di conteggi di badge alla pagina degli utenti, ma ora che consentiamo l’aggiunta di elementi di directory opzionali alla pagina degli utenti, sembra che i conteggi di badge sarebbero un’aggiunta logica. Aiuterebbe a rendere la pagina degli utenti più funzionale come classifica.

Solo un’idea, ma l’aggiunta di una colonna badges_received a directory_items sarebbe un modo possibile per affrontare il problema?

2 Mi Piace

Sto cercando un conteggio di tutti i tempi, quindi grazie alla tua indicazione ho estratto questa query da user_stat.rb e l’ho eseguita nell’esplora dati e mi ha fornito un elenco di tutti gli utenti con il loro conteggio di badge:

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