Temos um problema com as tags personalizadas de eventos e o novo editor WYSIWYG ProseMirror: os campos personalizados preenchidos a partir do formulário de evento não estão presentes na string gerada. Ainda funciona como antes com o editor de markdown.
Passos para reproduzir:
Ative o plugin Discourse Calendar
Adicione um campo personalizado na configuração do plugin
Abra um formulário para uma nova Postagem
Selecione o editor ProseMirror
Crie um evento com um valor para o campo personalizado (Opções > Criar Evento)
Valide o evento
Mude para o editor Markdown
O que está acontecendo
O campo personalizado está ausente da tag [event].
O que é esperado
O campo personalizado deve estar presente na tag [event].
Observações
Ao fazer o mesmo, mas começando com o editor Markdown em vez de ProseMirror, o campo personalizado está presente na tag [event].
Investiguei um pouco o que estava acontecendo com o toolbarEvent ao validar o novo evento: o método addText() parece receber em ambos os casos a marcação correta:
Não consigo encontrar outro plugin com o mesmo recurso, então é difícil descobrir o que está errado.
Ao validar o formulário, ele chama this.args.model.toolbarEvent.addText() com o texto correto.
Alguns console.log(TM) me levam a: text-manipulation.js#addText(), onde this.convertFromMarkdown(text) é chamado. Parece que o problema vem daqui: há uma espécie de esquema imposto, e ele não contém os campos personalizados.
O problema vem da extensão do editor discourse-calendar/assets/javascripts/discourse/pre-initializers/rich-editor-extension.js: a lista de atributos usada por convertFromMarkdown() é definida na constante EVENT_ATTRIBUTES. Funciona ao adicionar o campo personalizado à lista.
Não há nada sobre campos personalizados neste arquivo; não tenho ideia de como completar esta constante com todos os campos personalizados; a extensão parece ser registrada no início do processo.
Qualquer ideia é bem-vinda, isso torna o plugin inutilizável com o novo editor que não pode ser desativado, então estamos presos com o Discourse 3.4.
Campos personalizados não são suportados no editor avançado por enquanto. Investigaremos o melhor caminho a seguir.
Ele pode – se você for um administrador, pode definir SiteSettings.rich_editor = false através do console, que ainda está disponível como último recurso em casos como este.