Anulando el valor predeterminado de la encuesta para que "public=true"

Me preguntaba cuántos sitios tienen problemas con esto también. A mí también me encantaría que fuera Público por defecto.

También creo que la interfaz de usuario podría ser mejor.

  • Puedes hacer encuestas de voto único a partir de encuestas de voto múltiple, así que en mi opinión no hay necesidad de tener voto único.
  • Siempre mostraría la interfaz de usuario extendida.
  • Me encantaría la opción Público=Verdadero por defecto o, si es más fácil de implementar, Anónimo=Falso.
  • Movería la casilla de verificación para Público a la parte superior o haría la interfaz de usuario para encuestas Públicas y Anónimas por separado, se pasa por alto con demasiada facilidad.

No estoy familiarizado con la modificación de componentes de temas, si hay una solución fácil por ahora que alguien haya creado, sería genial compartirla con instrucciones sobre cómo implementarla y qué verificar al actualizar Discourse.

2 Me gusta

Soy nuevo pero estoy interesado en resolver el problema, así que le pregunté a chat-gpt:

Aquí está la respuesta:

El script que encontraste es un buen comienzo. Está modificando el controlador poll-ui-builder para establecer la propiedad publicPoll en true cuando se llama a la función onShow() del controlador. Esto, de hecho, está destinado a ser agregado como un Componente de Tema.

Sin embargo, el código podría no estar funcionando debido al orden de ejecución. El método onShow() original establece publicPoll en false y luego la modificación establece publicPoll en true después.

Una forma correcta sería llamar primero al método onShow del padre y luego establecer publicPoll en true:

<script type="text/discourse-plugin" version="0.8">
api.modifyClass("controller:poll-ui-builder", {
  onShow() {
    this._super(...arguments);
    this.set('publicPoll', true);
  }
});
</script>

Puedes agregar este script a tu tema siguiendo estos pasos:

  1. Ve al panel de administración de Discourse.
  2. En la sección “Personalizar”, haz clic en “Temas”.
  3. Selecciona el tema que deseas modificar.
  4. En la pantalla de edición del tema, haz clic en “Editar CSS/HTML”.
  5. En la barra lateral izquierda, haz clic en “</>” Común.
  6. Pega el script anterior en la sección “</>” Común.
  7. Haz clic en el botón “Guardar”.

Esto aplicará el cambio a tu tema. Recuerda que los cambios en el tema solo se aplican a los usuarios que están utilizando ese tema en particular. Si tienes varios temas, deberás agregar esta modificación a cada uno de ellos.

Además, recuerda borrar la caché de tu navegador o realizar una recarga forzada para asegurarte de que los cambios se carguen correctamente.

Intentaré seguir estos pasos con el administrador de nuestro Foro, pero esto lleva tiempo. Si alguien más aquí quiere intentarlo primero y dar su opinión, estaría muy agradecido.

Otra cosa que me encantaría cambiar es el comportamiento de la interfaz de usuario, quiero saltarme la pantalla simple, así que le pregunté a chat-gpt nuevamente:

En tu código actual, la vista extendida está controlada por la propiedad showAdvanced. Si esta se establece en true, se mostrará la vista avanzada.

Para mostrar siempre la vista avanzada, puedes modificar el método onShow() en el controlador poll-ui-builder para establecer showAdvanced en true. Puedes agregar esta modificación al componente de tema que creaste anteriormente. Aquí tienes el script actualizado:

<script type="text/discourse-plugin" version="0.8">
api.modifyClass("controller:poll-ui-builder", {
  onShow() {
    this._super(...arguments);
    this.set('publicPoll', true);
    this.set('showAdvanced', true);
  }
});
</script>

Recuerda seguir los pasos que describí anteriormente para agregar este script a tu tema. Una vez que el script se guarde, la vista avanzada siempre debería mostrarse cuando se cargue la interfaz de usuario de la encuesta.

Nuevamente, recuerda borrar la caché de tu navegador o realizar una recarga forzada para asegurarte de que los cambios se carguen correctamente.

Me encantaría intentar y probar por mí mismo de alguna manera, pero como mencioné antes, solo soy un moderador, no el administrador de nuestro sitio, así que esto llevará algunos días o semanas.

2 Me gusta

Me alegro de que lo hayas resuelto. :+1:

Solo como nota, cuando quieras modificar varias propiedades, puedes usar esta sintaxis:

    this.setProperties({
        'publicPoll': true,
        'showAdvanced': true
    });
2 Me gusta

en realidad no fui yo, solo le di a Chat-GPT el código proporcionado en este enlace:

y luego le di el primer intento de @JammyDodger y le pregunté si podía resolver mis dos requisitos :smiley:

sería genial si funcionara y otra cosa interesante sobre Discourse que aprendí.

2 Me gusta

¡Lo he probado y funciona! :partying_face:

Eso es fantástico. :slight_smile: Muchas gracias. :pray:

1 me gusta

Y aquí está como un Componente de Tema:

4 Me gusta

ya no funciona para nuestra instancia.
no pude comprobar si el fragmento de código todavía está incluido, ya que no tengo los permisos para ello.

¿Sigue funcionando en tus foros @JammyDodger y @nathank?

1 me gusta

Tampoco creo que esté funcionando en mi sitio de prueba ahora. ¿Es posible que necesite una actualización para tener en cuenta algunos cambios recientes?

Lo separaré en un tema de Dev :+1:

2 Me gusta

He descubierto que el modal que se estaba llamando ha sido refactorizado de acuerdo con esto:

Sin embargo, no sé cómo interactuar con eso a través de la API. El nuevo archivo modal está aquí:

https://github.com/discourse/discourse/blob/main/plugins/poll/assets/javascripts/discourse/components/modal/poll-ui-builder.js

No sé cómo llamar a esto ahora, ya que, hasta donde puedo ver, la documentación no cubre cómo hacerlo. ¿Alguien puede ayudar?

1 me gusta

Buenas noticias. :slight_smile: Creo que podemos tener algo para esto…

6 Me gusta