Olá a todos,
Após atualizar nossa instância do Discourse, aparentemente temos quantidades incorretas de “solved” ao olhar os resumos de perfil. Exemplo:
Eu já notei que houve algumas mudanças recentemente, incluindo um bug crítico:
nat:
Nós acabamos de mover o discourse-solved de usar campos personalizados para tabelas adequadas, e algumas suposições foram feitas, como cada post deve ser apenas uma resposta a um tópico, ou um tópico com uma resposta deve apontar para um post não nulo. Todas essas suposições foram jogadas pela janela.
As quantidades corretas ainda estão obviamente disponíveis, então provavelmente algo aconteceu durante a migração dos dados para as novas tabelas?
1 curtida
nat
(Natalie T)
Março 27, 2025, 11:35am
2
Obrigado por escrever. Vou dar uma olhada.
1 curtida
nat
(Natalie T)
Março 27, 2025, 11:55am
4
Existem algumas discrepâncias na contagem de soluções no Discourse, onde estávamos incluindo tópicos e postagens que já foram excluídos.
Antes da migração, estávamos indicando:
John tem 27 soluções porque as pessoas marcaram sua postagem como solução 27 vezes.
Isso é armazenado na tabela UserActions.
Após a migração, agora estamos contando:
John tem 20 soluções porque existem 20 tópicos onde suas postagens são soluções
Isso é armazenado na tabela SolvedTopics e tem um link direto para um tópico existente e não excluído.
Há uma diferença sutil aqui - no primeiro cenário, não havia validações para verificar se a postagem da solução ou seu tópico ainda existiam.
Verificarei com nossa equipe qual é o melhor número para exibir. Pessoalmente, estou inclinado a contar as soluções para tópicos que ainda existem.
3 curtidas
Tenho quase certeza de que este não pode ser o problema — pois isso só causaria menos números em vez de mais em alguns casos, correto? Tenho outro exemplo para você:
-> Errado: Profile - SGS - Garuda Linux Forum
-> Correto:
Parece impossível para mim que esse mecanismo de contagem mais do que dobre a quantidade de contagens de postagens resolvidas. Além disso (é claro que não confirmado), duvido muito que o número de postagens excluídas tenha sido tão alto no meu exemplo anterior.
Obrigado!
nat
(Natalie T)
Março 27, 2025, 12:20pm
7
Hmmm sim 485 e 90 estão muito distantes.
Acredito que acabei de encontrar o bug (embora a afirmação sobre a discrepância que mencionei acima ainda seja verdadeira) –
Na implementação anterior , a contagem de soluções no resumo de John é contada pelo número de vezes que alguém marcou a postagem de John como solução
def solved_count
UserAction.where(user: @user).where(action_type: UserAction::SOLVED).count
end
Na nova implementação , a contagem de soluções no resumo do usuário de John é o número de vezes que John marcou uma postagem como solução
def solved_count
DiscourseSolved::SolvedTopic.where(accepter: @user).count
end
Isso explica a grande diferença. “Contagem de soluções” mudou de definição de ‘quantas vezes você respondeu’ para ‘quantas vezes você aceitou’.
Corrigirei o bug, obrigado novamente pelo relatório!
Também atualizarei os diferentes métodos de contagem usados no popup de perfil e no resumo do usuário.
4 curtidas
nat
(Natalie T)
Março 27, 2025, 12:41pm
8
Parabéns a @ondrej por também me mencionar Solution badge not working? . Parece que algumas discrepâncias já estavam acontecendo antes desta migração. O bom é que migraremos para um número mais consistente em todo o Discourse e em nossos plugins.
4 curtidas
Maravilha, muito obrigado!
4 curtidas
nat
(Natalie T)
Março 28, 2025, 1:50am
13
4 curtidas
nat
(Natalie T)
Fechado
Março 31, 2025, 12:00am
14
Este tópico foi fechado automaticamente após 2 dias. Novas respostas não são mais permitidas.