Uma sugestão para o sistema de revisão: ao aprovar uma postagem que remove o silenciamento de um usuário, seria possível adicionar uma Nota do Usuário para o evento? Algo como '@nome_de_usuário removeu o silenciamento desta conta' seria muito útil. No momento, vemos apenas metade da história nas notas.
É melhor simplesmente excluí-los por completo, é o que eu faço. Geralmente estão errados de qualquer forma, e eu não gosto de anotações ruidosas que não agregam valor.
Na fila de revisão, para o tipo ‘Postagem na Fila’, se eu tentar excluir um usuário com muitas postagens, recebo um erro de tempo limite 502.
Não tenho certeza qual é o limite superior, mas nos testes de hoje, o menor número que não funcionou foi uma conta com 288 postagens.
Por exemplo: no cenário em que uma postagem foi sinalizada (tipo: Postagem na Fila) por conter uma palavra na lista de Palavras Monitoradas → Requer Aprovação.
Atualmente, as opções disponíveis são:
Aprovar Postagem | Rejeitar Postagem | Excluir Usuário | Editar
Acredito que adicionar as opções de silenciar e suspender a esses tipos de postagens na fila seria bastante útil. Por exemplo: rejeitar postagem + silenciar ou suspender. Isso daria aos administradores a escolha entre silenciar/suspender um usuário ou apagá-lo diretamente da fila de revisão.
Além disso, se excluir usuários com mais de X postagens da fila de revisão não for viável devido a erros 502, ter suspender e silenciar como opções alternativas seria realmente ótimo.
Algumas informações adicionais:
Ao abrir ‘Agrupado por Tópico’ na fila de revisão, recebo este erro:
Erro do Servidor
ao tentar carregar /review/topics
Código de erro: 500 Erro Interno do Servidor
Observe que há cerca de 30 mil itens na fila de revisão, muitos dos quais mais antigos foram adicionados pelo Akismet antes que eu o desinstalas.
–
Problema de rolagem/paginação (provavelmente deveria ter postado aqui em vez disso): Review Queue Pagination/Infinite Scrolling after Taking an Action
–
Em relação aos itens do tipo (type: Queued Post) e ao recebimento de um timeout 502 ao usar a opção de excluir usuário. Posso confirmar o erro com uma conta que tem 166 postagens.
–
Ideias:
-
Seria uma economia de tempo útil ter um link direto para a página de administração do usuário a partir da fila de revisão em algum lugar.
-
Acredito que atualmente não é possível optar por não receber o e-mail diário de lembrete “x itens precisam ser revisados”. Seria útil poder desativar essa opção.
Você pode revisar seus /logs e nos informar qual é o erro?
Ok, acho que é isso:
ActiveRecord::SubclassNotFound (O mecanismo de herança de tabela única falhou ao localizar a subclasse: ‘ReviewableAkismetPost’. Esse erro é gerado porque a coluna ‘type’ é reservada para armazenar a classe em caso de herança. Por favor, renomeie essa coluna se você não pretendia usá-la para armazenar a classe de herança ou sobrescreva Reviewable.inheritance_column para usar outra coluna para essa informação.)
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3/lib/active_record/inheritance.rb:234:in `rescue in find_sti_class’
Você pode confirmar se o seu plugin Akismet está na versão mais recente e, se não estiver, atualizá-lo?
Talvez itens antigos adicionados por outros tipos de revisão não possam ser lidos se a definição do revisável desaparecer (como ao desinstalar um plugin). Parece que os erros começaram a ocorrer após a desinstalação:
Posso confirmar que o Akismet está atualmente desinstalado. Eu o removi há bastante tempo.
Isso é interessante, como o @featheredtoast suspeita. @Roman, como você acha que devemos lidar com isso se os registros existirem, mas o plugin foi removido?
Acho que é possível determinar quais tipos de reviewable devem ser filtrados fazendo algo assim:
class Reviewable < ActiveRecord::Base
def self.exclude_types
db_types = Reviewable.distinct.pluck(:type)
@exclude_types ||= db_types - Reviewable.types
end
...
end
Depois, podemos usar esses tipos para aplicar um escopo padrão. Provavelmente teremos que adicionar um índice de type na tabela.
@Roman, você pode dar uma olhada nisso quando tiver um tempo?
Estou recebendo muitas imagens invisíveis na fila de revisão. Algumas funcionam bem, é uma questão de 50/50. Algumas mostram algo assim na inspeção e nada é exibido:
src="/images/transparent.png" alt="" data-orig-src="upload://fwf1zrfwefWEqGer2W3xz1ed.jpeg"
Isso ocorre tanto em instâncias usando CDN + S3 quanto apenas com armazenamento local.
Sim, o problema afeta apenas postagens em fila.
Tenho um PR com uma correção aguardando revisão, então as imagens devem voltar a aparecer em breve.
Avisarei assim que o mesclarmos.
A correção já está disponível nas branches tests-passed e stable.
No entanto, ainda há outro problema: imagens de postagens em fila rejeitadas continuam não aparecendo na fila de revisão. O sistema as remove automaticamente, pois não há necessidade de mantê-las. Planejamos substituí-las por um texto explicando isso.
Muito obrigado por corrigir isso, @Roman!
Outra coisa que pode ser um bug em tests-passed: Cenário: Aceitar um post na fila de revisão e, em seguida, voltar e rejeitá-lo. O post permanecerá listado e visível no site.
Edição: os dois últimos parágrafos deste comentário também explicam outro problema possível relacionado a algumas opções da fila de revisão e limites de taxa em todo o site: Discourse No Bump - #27
Outra coisa que notei em relação ao ‘auto handle queued age’. Tenho muitos itens antigos em algumas filas de revisão que são significativamente mais antigos que a configuração de dias do ‘auto handle queued age’ (usando o padrão) e que parecem não estar sendo processados automaticamente. Parece que nenhum dos itens está sendo tratado automaticamente. Não tenho certeza se estou perdendo algo.
Além disso, ao ordenar a fila de revisão por ‘Criado em (reverso)’, estou recebendo um erro 500. Todos os outros filtros de ‘ordenar por’ funcionam corretamente.
Você pode verificar seus logs e nos informar qual é o erro ao alterar a ordem de classificação?
Obrigado, @eviltrout, sim, claro. Este é o erro que vejo:
ActiveRecord::SubclassNotFound (O mecanismo de herança de tabela única falhou ao localizar a subclasse: ‘ReviewableAkismetPost’. Esse erro é gerado porque a coluna ‘type’ é reservada para armazenar a classe em caso de herança. Por favor, renomeie essa coluna se você não pretendia usá-la para armazenar a classe de herança ou sobrescreva Reviewable.inheritance_column para usar outra coluna para essa informação.)
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/inheritance.rb:234:in `rescue in find_sti_class’
Note que o plugin Akismet foi removido há bastante tempo neste fórum específico.
Ah, então ainda está relacionado a isso. @Roman, parece que ainda pode haver um bug aqui relacionado à presença desses tipos de revisáveis antigos no banco de dados?
