Il conteggio risolto nel riepilogo mostra valori incorretti

Ciao a tutti,

Dopo aver aggiornato la nostra istanza Discourse, sembriamo avere quantità errate di soluzioni quando guardiamo i riepiloghi dei profili. Esempio:

Ho già notato un paio di cambiamenti recenti, incluso un bug che rompe:

Le quantità corrette sono ovviamente ancora disponibili, quindi è probabile che sia successo qualcosa durante la migrazione dei dati alle nuove tabelle?

1 Mi Piace

Grazie per aver scritto. Ci darò un’occhiata.

1 Mi Piace

Ci sono alcune discrepanze nel conteggio delle soluzioni in Discourse, poiché stavamo includendo argomenti e post già eliminati.

Prima della migrazione, indicavamo:

John ha 27 soluzioni perché le persone hanno contrassegnato il suo post come soluzione 27 volte.

Questo è memorizzato nella tabella UserActions.

Dopo la migrazione, ora contiamo:

John ha 20 soluzioni perché ci sono 20 argomenti in cui i suoi post sono soluzioni

Questo è memorizzato nella tabella SolvedTopics e ha un collegamento diretto a un argomento esistente e non eliminato.

C’è una sottile differenza qui: nel primo scenario non c’erano validazioni per verificare se il post della soluzione o il suo argomento esistessero ancora.

Verificherò con il nostro team quale sia il numero migliore da visualizzare. Personalmente, sono propenso a contare le soluzioni per gli argomenti che esistono ancora.

3 Mi Piace

Sono abbastanza sicuro che questo non possa essere il problema, poiché causerebbe solo un numero inferiore anziché superiore in alcuni casi, corretto? Ho un altro esempio per te:
-> Sbagliato: Profile - SGS - Garuda Linux Forum
-> Giusto:
L'immagine mostra una sezione del profilo utente che indica che l'utente si è unito il 15 aprile 2020, ha letto 600 ore di contenuti e ha pubblicato 4 ore fa, con una serie attuale di 5 giorni consecutivi. (Didascalia dell'IA)

Mi sembra impossibile che questo meccanismo di conteggio possa più che raddoppiare il numero di post risolti. Oltre a ciò (ovviamente non confermato), dubito fortemente che il numero di post eliminati fosse così alto nel mio esempio precedente.

Grazie!

Hmmm sì, 485 e 90 sono troppo distanti.

Credo di aver appena trovato il bug (anche se l’affermazione sulla discrepanza che ho menzionato sopra è ancora vera) –

Nella precedente implementazione, il conteggio delle soluzioni nel riepilogo di John viene contato in base a quante volte qualcuno ha contrassegnato il post di John come soluzione.

  def solved_count
    UserAction.where(user: @user).where(action_type: UserAction::SOLVED).count
  end

Nella nuova implementazione, il conteggio delle soluzioni nel riepilogo utente di John è il numero di volte in cui John ha contrassegnato un post come soluzione.

  def solved_count
    DiscourseSolved::SolvedTopic.where(accepter: @user).count
  end

Questo spiega la grande differenza. “Conteggio soluzioni” è cambiato definizione da “quante volte hai risposto” a “quante volte hai accettato”.

Correggerò il bug, grazie ancora per la segnalazione!

Aggiornerò anche i diversi metodi di conteggio utilizzati nel popup del profilo e nel riepilogo utente.

4 Mi Piace

Complimenti a @ondrej per avermi anche menzionato Solution badge not working?. Sembra che alcune discrepanze si stessero già verificando prima di questa migrazione. La cosa positiva è che migreremo a un numero più coerente tra Discourse e i nostri plugin.

4 Mi Piace

Magnifico, grazie mille! :slight_smile:

4 Mi Piace

Questo ora è stato corretto e standardizzato - FIX: Standardise the definition of what a solution is by nattsw · Pull Request #352 · discourse/discourse-solved · GitHub

4 Mi Piace

Questo argomento è stato chiuso automaticamente dopo 2 giorni. Non sono più consentite nuove risposte.