¿Pueden los plugins lograr visibilidad selectiva de respuestas dentro de los temas y cómo puedo crear uno?

Hola comunidad,

Discourse es un excelente foro con mucha funcionalidad. Me interesa saber si hay alguna forma de permitir que los usuarios seleccionen manualmente la audiencia para sus respuestas a un tema en particular. Si bien soy consciente de que existe un maravilloso plugin “discourse-private-reply” que puede limitar la visibilidad de las respuestas al creador del tema, busco una solución más detallada.

Para aclarar, supongamos que estoy redactando una respuesta dentro de un tema, me gustaría poder crear una lista blanca de usuarios que puedan ver mi respuesta antes de hacer clic en el botón “PUBLICAR”. Esencialmente, quiero asegurarme de que solo los usuarios que he seleccionado puedan ver mi respuesta, mientras que todos los demás no.

Personalmente, soy un desarrollador con algunas habilidades de programación, pero nunca antes he trabajado en el desarrollo de plugins de Discourse. Si no existen plugins o herramientas que puedan proporcionar el nivel de control que busco, agradecería cualquier consejo o guía sobre el enfoque de desarrollo, como a qué “proceso” debería conectarme o qué API debería llamar para lograr la funcionalidad deseada.

Cualquier sugerencia o idea sería muy apreciada. ¡Gracias por su tiempo y ayuda!

5 Me gusta

Con la necesidad de un acceso tan detallado, es posible que necesites considerar si un tema público normal es la mejor solución. ¿Quizás puedas contar un poco más sobre tu caso de uso específico?

Un buen punto de partida sería, de hecho, mi plugin de respuestas privadas. Tiene una función llamada can_see_post_if_author_among que actualmente toma un tema. Deberías modificarla para que tome una publicación. Deberías almacenar los usuarios permitidos con la publicación en un campo personalizado y luego verificar el usuario que la ve contra esa lista.

El plugin también anula la lógica de control de acceso para publicaciones sin formato, búsquedas, vistas de temas y actividad del perfil de usuario.

Dicho esto, espero que te encuentres con bastantes problemas tanto desde el punto de vista del rendimiento como de la experiencia del usuario, y especialmente si no tienes experiencia en el desarrollo de plugins de Discourse, esto puede ser una tarea bastante importante, por lo que te recomendaría nuevamente que consideres si este es el mejor enfoque para tu caso de uso.

7 Me gusta

Gracias por tu pronta respuesta y por compartir tus ideas sobre este asunto. Me gustaría proporcionar un caso de uso de ejemplo en el que un profesor asigna diferentes tareas a cada estudiante y les exige que publiquen sus respuestas (informes) en un foro de Discourse. En este escenario, 1) el profesor necesita poder ver la respuesta de cada estudiante y 2) algunos estudiantes pueden querer mantener sus respuestas privadas mientras que otros buscan comentarios, retroalimentación e interacción. Además, 3) los profesores pueden proporcionar comentarios que no son adecuados para la visualización pública.

Esta necesidad de control sobre las publicaciones también puede aplicarse a otras situaciones, como empleados que escriben informes mensuales o pacientes que escriben registros de recuperación. Para abstraer, se trata de satisfacer las solicitudes de control de los usuarios en lugar de que los moderadores planifiquen todo con antelación. Esto es especialmente importante para comunidades pequeñas centradas en la producción de contenido de alta calidad.

Si bien Discourse es una excelente plataforma para comunidades grandes con miles de usuarios, también es una gran opción para construir comunidades más pequeñas y refinadas que fomentan el pensamiento profundo y la discusión en profundidad. Los usuarios deberían tener más control sobre sus publicaciones bien escritas.

Con respecto al desarrollo de un plugin para esta función, aprecio tu preocupación por equilibrar el rendimiento y la experiencia del usuario. En lugar de crear inmediatamente un plugin complicado, un mejor enfoque sería maximizar las funciones existentes. Por ejemplo, creando una categoría con varias subcategorías, cada una correspondiente a una tarea, y haciendo que los estudiantes envíen su trabajo a la subcategoría apropiada. Esto permite el control sobre cada tema, y los creadores pueden optar por hacer que sus temas sean públicos o visibles para grupos de usuarios específicos. Dar estos pequeños pasos puede ayudar a reducir la carga de trabajo y facilitar la validación de la efectividad de la función.

En resumen, dar a los usuarios más control sobre sus publicaciones es esencial para crear comunidades de nicho con contenido y participación de alta calidad. Esto no solo nutrirá estas comunidades, sino que también ampliará los usos potenciales de Discourse. Es una nueva forma de explorar lo que Discourse puede hacer.

Gracias por la oportunidad de discutir esto contigo. :slightly_smiling_face:

2 Me gusta

Esto es exactamente para lo que se creó el plugin. Solo necesitas hacer el #2 y el #3 con mensajes privados o chat.

Los creadores ya pueden elegir entre respuestas visibles o no visibles, y el plugin también se puede configurar para que las respuestas sean visibles para las personas del mismo grupo principal que el creador.
Al usar diferentes categorías con diferentes derechos de acceso, puedes controlar aún más quién puede ver todo el tema y quién no.

Nuevamente, no es necesario crear funcionalidad adicional, compleja y frágil, cuando esto ya se puede lograr cambiando ligeramente la forma en que quieres trabajar.

En resumen, no me has convencido de que estos cambios sean necesarios. Solo añadirán complejidad, tanto para los usuarios como para el mantenimiento del plugin.

Quiero aclarar que mi intención no fue sugerir ningún cambio a discourse-private-reply. Entiendo que proporciona una funcionalidad valiosa para controlar la visibilidad de las publicaciones. Gracias por la discusión sobre este asunto.

2 Me gusta

Sí, tienes razón, lo expresé mal, disculpa. Pero mi consejo sigue en pie: no lo resuelvas con tecnología compleja, resuélvelo cambiando ligeramente el proceso.