Tenemos un problema con las etiquetas personalizadas de eventos y el nuevo editor WYSIWYG ProseMirror: los campos personalizados rellenados desde el formulario del evento no están presentes en la cadena generada. Todavía funciona como antes con el editor markdown.
Pasos para reproducir:
Habilita el plugin Discourse Calendar
Añade un campo personalizado en la configuración del plugin
Abre un formulario para una nueva Publicación
Selecciona el editor ProseMirror
Crea un evento con un valor para el campo personalizado (Opciones > Crear Evento)
Valida el evento
Cambia al editor Markdown
Qué está sucediendo
El campo personalizado está ausente de la etiqueta [event].
Qué se espera
El campo personalizado debería estar presente en la etiqueta [event].
Notas
Al hacer lo mismo pero comenzando con el editor Markdown en lugar de ProseMirror, el campo personalizado está presente en la etiqueta [event].
Investigué un poco lo que sucedía con el toolbarEvent al validar el nuevo evento: el método addText() parece recibir en ambos casos el marcado correcto:
No puedo encontrar otro plugin con la misma característica, así que es difícil encontrar qué está mal.
Al validar el formulario, llama a this.args.model.toolbarEvent.addText() con el texto correcto.
Varios console.log(TM) me llevan a: text-manipulation.js#addText() donde se llama a this.convertFromMarkdown(text). Parece que el problema viene de aquí: hay un tipo de esquema que se aplica y no contiene los campos personalizados.
El problema proviene de la extensión del editor discourse-calendar/assets/javascripts/discourse/pre-initializers/rich-editor-extension.js: la lista de atributos utilizada por convertFromMarkdown() se define en la constante EVENT_ATTRIBUTES. Funciona al agregar el campo personalizado a la lista.
No hay nada sobre campos personalizados en este archivo; no tengo idea de cómo completar esta constante con todos los campos personalizados; la extensión parece registrarse temprano en el proceso.
Se aceptan ideas, hace que el plugin no sea utilizable con el nuevo editor que no se puede deshabilitar, por lo que estamos atascados con Discourse 3.4.
Los campos personalizados no son compatibles en el editor enriquecido por ahora. Investigaremos el mejor camino a seguir.
Sí se puede: si eres administrador, puedes establecer SiteSettings.rich_editor = false a través de la consola, que todavía está disponible como último recurso en casos como este.