Problema com tags na nova instância do discourse?

Minha nova instância do Discourse (atualmente na versão 38950840e0) está no ar há apenas alguns dias. Ao ativar as tags hoje, deparei-me rapidamente com vários problemas.

Quando crio um novo tópico, consigo adicionar uma tag e tudo funciona como esperado. No entanto, quando tento editar um tópico existente para adicionar uma tag ou criar uma nova tag, nada acontece. Vejo a tag sendo enviada na requisição de rede via PUT, e ao verificar no banco de dados, não vejo nada registrado nas tabelas topic_tags ou tags.

Também notei que, às vezes, as tags linkam para /tag/<tagname> e, outras vezes, para /tags/<tagname>. O primeiro funciona, o segundo não.

Tenho uma instalação quase padrão, com poucos plugins — apenas o plugin multilingual, que, supostamente, interfere no recurso de tags, certo? Não alterei muitas configurações no painel administrativo; em relação às tags, apenas marquei a opção Enable tags on topics? e nada mais.

O fórum está online, mas atualmente está configurado como privado. Posso fornecer um link de convite se alguém quiser dar uma olhada…

1 curtida

A rota das tags foi recentemente renomeada de tags para tag. Parece provável que o problema esteja sendo causado por um plugin.

Você pode tentar acessar os registros de erro do seu site (encontrados em Admin / Logs / Registros de Erro) e, em seguida, adicionar uma tag a um tópico? Possivelmente, isso disparará uma entrada nos registros. Se isso acontecer, ou se você ver entradas antigas nos registros que mencionam tags, verifique o que está exibido nas abas ‘info’ e ‘backtrace’ da entrada do registro.

A aba ‘backtrace’ pode nos fornecer informações sobre o que está causando o problema. Ela se parecerá com algo assim:

2 curtidas

Obrigado pela resposta. Nada nos logs. A única coisa que consigo imaginar é que algo de Multilingual Plugin 🌐 ainda não foi atualizado para as mudanças recentes?

Na verdade, eu realmente não preciso de todo o plugin, apenas de uma parte dele: desabilitar o uso de idiomas de interface existentes, mas não vejo outra maneira fácil de fazer isso.

1 curtida

Para referência futura, caso alguém ache isso útil, extraí o trecho muito curto necessário do plugin multilíngue para um plugin separado e funciona perfeitamente para o meu caso de uso:

// assets/javascripts/discourse/initializers/custom-locale-initializer.js.es6

import { withPluginApi } from 'discourse/lib/plugin-api';
import { default as discourseComputed } from "discourse-common/utils/decorators";

export default {
  name: 'custom_locale',
  initialize(container) {
    const siteSettings = container.lookup("site-settings:main");

    if (!siteSettings.custom_locale_disable_others) return;
    
    withPluginApi('0.11.1', api => {
      api.modifyClass('controller:preferences/interface', {
        @discourseComputed()
        availableLocales() {
            return [
                { value: 'en', name: 'Inglês' },
                { value: 'cust', name: 'Minha Localidade Personalizada'},
            ]
        }
      });
    });
  }
}

As tags estão funcionando novamente como esperado, então posso confirmar que o problema está no plugin. (Tentei editar várias referências de /tags para /tag, mas sem sucesso.)

2 curtidas

Você quer dizer “de /tags para /tag…”? :slightly_smiling_face:

2 curtidas