Obligar a los usuarios a elegir categoría

Quiero que los usuarios seleccionen manualmente una categoría al crear una nueva publicación.
Ya he revisado los temas:

https://meta.discourse.org/t/invite-people-to-choose-category-before-create-a-new-topic/214077
https://meta.discourse.org/t/require-category-selection-before-writing-topic/66236/15

pero ninguno de ellos parece abordar esto.
Tengo Permitir temas sin categoría desmarcado.

¿El problema es que una categoría venga pre-rellenada? Si es así, quizás estés buscando la configuración del sitio “Categoría del compositor predeterminada”.

4 Me gusta

Sí, ese era el problema.

Acabo de restablecer esa configuración y está funcionando como se esperaba. ¡Gracias! :raising_hands:

Noté que cuando esa configuración se establece en “sin categoría”, no permite al usuario hacer clic y escribir y muestra un mensaje para elegir una categoría, pero a veces las personas no leen el texto de inmediato. ¿Sabes por casualidad si es posible mostrar algún “pop up” cuando el usuario hace clic en el área del mensaje, antes de elegir una categoría?


EDITAR: Después de probar muchas opciones que Claude y ChatGPT ofrecieron para esto, terminé simplemente eliminando la propiedad “Deshabilitado”. Así que los usuarios aún pueden hacer clic y escribir su mensaje, pero cuando no se selecciona ninguna categoría e intentan enviarlo, ven el error rojo/naranja pidiendo que elijan una categoría. En realidad, este es un comportamiento mejor, en mi opinión.

Para otros que intentan hacer lo mismo, aquí está el Javascript que agregué a la pestaña head en un nuevo componente que creé llamado Unlock Composer:

<script type="text/discourse-plugin" version="0.8">
  const observer = new MutationObserver(() => {
    const textarea = document.querySelector(".d-editor-input[disabled]");
    if (textarea) {
      textarea.removeAttribute("disabled");
      textarea.setAttribute("placeholder", "Select a category before submitting");
      textarea.style.cursor = "text";
    }
  });

  observer.observe(document.body, { childList: true, subtree: true });
</script>

No soy desarrollador. Esto fue solo lo que sugirió ChatGPT y funciona. Si alguien ve cómo se puede mejorar esto, por favor compártalo.

¿Sería posible compartir una captura de pantalla de esto en acción, por favor?

Cuando hago clic en Nuevo tema, aparece esto:

Como puedes ver, no hay una categoría predeterminada. Ahora, puedo escribir mi mensaje (a diferencia del comportamiento predeterminado, que bloquea el área de mensajes), incluso sin haber seleccionado una categoría:

Si intento enviarlo, veo esto:

Espero que esto ayude.

1 me gusta

@alltiagocom ¡excelente, gracias!

1 me gusta

Creo que este es normalmente el comportamiento predeterminado. :thinking: ¿Tienes alguna plantilla de tema configurada por casualidad?

¡De nada!

Le pedí a ChatGPT que viera si había alguna forma de simplificar un poco más el script y eliminó la primera línea, relacionada con la API. Actualicé mi publicación con el script final, en caso de que quieras usarlo.

1 me gusta

No, no hay plantilla.

Pero creo que este no es el comportamiento predeterminado, porque incluso el marcador de posición original dice algo como “Selecciona una categoría antes de escribir aquí”, y el cursor cambia a una flecha con un símbolo :prohibited:. No me permite hacer clic y escribir, a menos que elija la categoría.

Eso es lo que esperaría si tienes una plantilla de tema configurada en una de tus categorías. Sin ninguna configurada, debería permitirte ingresar al área del compositor antes de establecer una categoría. Lo bloquea cuando se usan plantillas de tema para que las personas no omitan accidentalmente esa plantilla escribiendo primero en el compositor y luego seleccionando una categoría.

Acabo de hacer una prueba rápida en mi sitio, y sin una categoría predeterminada ni plantillas de tema, puedo ingresar al área del compositor sin ser bloqueado hasta que selecciono una categoría.

2 Me gusta

Extraño… Acabo de deshabilitar el componente que creé, lo intenté de nuevo y ahora me deja escribir. No está bloqueado :confused:

¿Será algún problema de caché después de que lo configuré en (sin categoría) o algo así? Caché en el servidor mismo, porque tanto en Chrome como en Firefox, con diferentes cuentas de usuario, tuve el mismo comportamiento. Estoy usando Cloudflare y noté que a veces hay problemas con mi foro que parecen estar relacionados con la caché de Cloudflare. De nuevo, no soy un experto, así que solo estoy adivinando…

Ok, creo que hablé demasiado pronto…
Unos minutos después, vuelve al otro comportamiento. Está bloqueado. Y cuando inspecciono el compositor, veo esto:

Supongo que me quedaré con el Componente, entonces.

2 Me gusta

Si funciona como quieres, entonces :chefs_kiss:

Por curiosidad, si tienes instalado el plugin explorador de datos, ¿podrías ejecutar esto solo para ver qué dice?:

SELECT id as category_id, topic_template
from categories

Acabo de probar esto en otro sitio (que resulta que es alemán como idioma predeterminado) y detectamos que se añadió una plantilla sigilosa a la categoría pseudo “Sin categorizar” que parece haber causado el mismo comportamiento en ese sitio.

Me acabo de dar cuenta de que en el foro de Obsidian, el comportamiento es el mismo. Está bloqueado hasta que elija una categoría, ¿así que probablemente sea el nuevo comportamiento?

No tengo el plugin explorador de datos, lo siento.

No lo creo. :thinking: En ambos sitios actualizados recientemente en los que he probado esto, el comportamiento es el mismo que esperaba (sin categoría predeterminada ni plantillas de temas = libre para escribir sin elegir una categoría primero).

Lo que no pudimos averiguar fue de dónde venía la plantilla de tema no categorizado en el sitio de la configuración regional alemana. Una añadida automáticamente a hurtadillas por alguna razón rompería la funcionalidad prevista sin que nadie se diera cuenta.

¿Tienes una en el tuyo? (Y si pudieras compartir tu configuración regional predeterminada, eso también sería útil)

/c/uncategorized/edit/topic-template

ETA: Como alternativa al explorador de fechas, también puedes filtrar tus registros del personal por ‘plantilla de tema’ y ver si hay información adicional allí.

(También añadiré aquí el enlace filtrado que Moin compartió abajo)

/admin/logs/staff_action_logs?filters=%7B%22subject%22%3A%22topic_template%22%7D

Es un gran plugin, lo recomiendo encarecidamente. :slight_smile:

3 Me gusta

Creo que es un poco difícil filtrar eso en la interfaz porque solo puedes filtrar por acciones y no por sujetos. Puede haber muchos registros para la acción “cambiar la configuración de la categoría”. Pero puedes agregar un filtro de sujeto a la URL: /admin/logs/staff_action_logs?filters=%7B%22subject%22%3A%22topic_template%22%7D

2 Me gusta

te harías un gran favor a ti mismo e lo instalarías porque es súper útil. :slight_smile:

3 Me gusta

Es extraño que el foro de Obsidian se comporte de la misma manera que el mío. A ver…

También vacío. De hecho, creo que no tengo ninguna plantilla en ningún sitio.

1 me gusta

Gracias Lilly (y gracias @JammyDodger) por compartir este plugin.
Definitivamente le echaré un vistazo.

1 me gusta

Creo que deberías poder ver el comportamiento predeterminado en try.discourse.org, si todavía tienes curiosidad. No, me equivoqué. Try tiene una categoría predeterminada establecida.

Eran los olvidados los que esperaba desenterrar. :slight_smile: Pero si no hay uno agregado automáticamente a Sin categorizar, entonces creo que esto descarta un posible error, así que eso es bueno. :+1:

También están los registros del personal (usando el enlace que compartió Moin), pero parece que estás contento con tu solución alternativa, así que dejaré de pedirte más información. :slight_smile: