No se pueden guardar los ajustes de categoría realizados por los plugins

Continuando la discusión de Plugin de Asistente Personalizado :mage::

Yo tengo el mismo problema y está ocurriendo con más plugins, como Locations y Private Topics. El mensaje «tienes cambios sin guardar» con la opción de guardar simplemente no aparece. Incluso cuando cambio otra cosa, la configuración no se guarda.

Quizás esto pertenece a Development, ya que los plugins oficiales no parecen verse afectados, pero por otro lado esto se rompió con una actualización de Discourse. Esto también afecta a dos plugins oficiales (calendar y restricted replies)

5 Me gusta

Sí, este es específicamente un problema con FormKit cuando enable_simplified_category_creation está habilitado; los plugins deberán migrar para usar FormKit y la nueva estructura de datos.

Hay un ejemplo funcional de esto en uno de nuestros plugins principales, que fue migrado aquí:

Puedes ver cómo la estructura del formulario se ramifica con {{#if this.siteSettings.enable_simplified_category_creation}} y cómo el formulario está estructurado usando FormKit y los datos de @outletArgs.form. La antigua estructura del formulario sigue presente después de {{else}} para mantener la compatibilidad con versiones anteriores.

2 Me gusta

Gracias por esa explicación, Kris.

Por lo general, me relajo bastante cuando necesito actualizar complementos debido a cambios en el núcleo, y estoy satisfecho con la forma en que se guía a los desarrolladores, pero creo que el equipo de Discourse realmente falló en esto.

  • No hubo ningún anuncio (al menos, no puedo encontrarlo, y @moin no me lo ha señalado (aún) ;))
  • No hubo ningún intento de mitigar esto con algún código general en el núcleo
  • Ni siquiera hay una advertencia en la consola de desarrollo del navegador

Las cosas simplemente dejaron de funcionar.

Un escaneo rápido, probablemente ni siquiera completo, muestra que esto ha roto AL MENOS los siguientes complementos:

  • Discourse
    • calendar :white_check_mark: ← complemento oficial de Discourse
    • restricted replies :white_check_mark: ← complemento oficial de Discourse
  • (miembros de) Pavilion
    • category lockdown
    • custom wizard
    • locations
    • chatbot
  • Communiteq
    • private replies
    • private topics
    • category restrictor
    • always anonymous
    • al menos 10 complementos privados
5 Me gusta

¡Verdad! Deberíamos haber advertido sobre este cambio a medida que avanzaba a través de nuestra función de cambios próximos: este es un proceso nuevo para nosotros y lo solucionaremos. Por ahora, enabled_simplified_category_creation se puede desactivar desde /admin/config/upcoming-changes para restaurar toda la funcionalidad existente del plugin.

4 Me gusta

Tuvimos tanto Simplified category setup como el próximo cambio en la interfaz de administración (y probablemente también un elemento en “Qué hay de nuevo”):

Deberías haber recibido notificaciones sobre este cambio tanto cuando apareció en tu sitio como cuando se activó automáticamente, lo cual probablemente ocurrió solo esta semana, cuando el cambio pasó al estado Estable.

Como dijo Kris, la mitigación es el próximo cambio en el núcleo, que te da tiempo para migrar las cosas:

¿Qué más te habría ayudado en este caso? Podríamos agregar algunos detalles adicionales en el tema vinculado al próximo cambio, con información sobre lo que los desarrolladores necesitan hacer para prepararse.

En cuanto a las advertencias para desarrolladores, puedo consultar con el equipo dev-xp para ver si hay algo mejor que podamos hacer la próxima vez.


Vamos a solucionar esto hoy. Debe ser que no tuvimos una cobertura de pruebas adecuada aquí, porque ninguno de estos plugins falló cuando realicé DEV: Move enable_simplified_category_creation to stable by martin-brennan · Pull Request #39212 · discourse/discourse · GitHub, pero otros plugins sí:

2 Me gusta

Ambos ya están fusionados, con una cobertura adicional de especificaciones, por @awesomerobot:

4 Me gusta

Sí, lo hice, el 3 de febrero.

Pero en ese momento, el cambio con el botón de guardar flotante aún no se había implementado (eso fue a finales de febrero, creo). No hubo una actualización adicional en ese tema ni en otro lugar que reflejara esos cambios.

Cualquiera de estas opciones:

  • un anuncio técnico oportuno dirigido a los desarrolladores de complementos
  • una retroalimentación automática temporal a la lógica anterior (como se ha hecho para la lista de temas; siempre que había código de complemento heredado, automáticamente volvía a la versión anterior).
  • un código de retroalimentación temporal que mantenga funcionando la funcionalidad heredada (detectar entradas fuera de los formularios e incluirlas en la configuración que debe guardarse). Eso también podría haberles ahorrado a ustedes el esfuerzo de todas esas ramas {{#if this.siteSettings.enable_simplified_category_creation}}.
  • advertencias en la consola de desarrollo del navegador cuando se detecte código heredado
  • un escaneo estático de complementos conocidos, como hice ayer (me tomó 10 minutos e incluso encontré algunos complementos oficiales que se pasaron por alto :wink: )

¡Eso sería muy apreciado!

4 Me gusta