Restringir publicaciones en una categoría hasta que den "me gusta" a un tema

Por si a alguien más le interesa hacer esto, aquí hay una breve descripción de lo que hice:

  1. Primero, debes habilitar Badge SQL a través de la CLI del servidor de Discourse:
./launcher enter app
rails c
SiteSetting.enable_badge_sql = true
  1. A continuación, encuentra el ID del tema con el que los miembros deben interactuar para obtener la insignia. En mi caso, el ID del tema es 117
  2. A continuación, encuentra el ID del tema con el que los miembros deben interactuar para obtener la insignia. En mi caso, el ID del tema es 117

Screenshot 2026-02-27 113204

  1. Crea tu Insignia Personalizada:
    1. Admin > Insignias > Nueva
    2. Nombra la insignia como quieras (ej. Lector de Reglas B/S/T)
    3. Elige un tipo de insignia, un ícono y dale una descripción
    4. Si seguiste el Paso 1, verás un cuadro de consulta donde puedes escribir una consulta SQL. Pega esta consulta (cambia p.topic_id = 117 por el ID de tu tema):
      1. SELECT DISTINCT ON (pa.user_id)
          pa.user_id,
          pa.post_id,
          pa.created_at granted_at
        FROM post_actions pa
        JOIN posts p ON pa.post_id = p.id AND p.post_number = 1
        WHERE pa.post_action_type_id = 2
          AND p.topic_id = 117
          AND (:backfill OR pa.post_id IN (:post_ids))
        
    5. Asegúrate de que Ejecutar consulta de revocación diariamente y La consulta tiene como objetivo publicaciones estén marcadas.
    6. El disparador debe configurarse como Cuando un usuario actúa sobre una publicación
  2. Ahora creamos la Automatización
    1. Primero crea un nuevo grupo para que se añadan los miembros. El mío se llama simplemente bst_rules_agreed, y está configurado para que solo los propietarios del grupo y los moderadores puedan ver la membresía. No necesita ningún efecto de Nivel de Confianza.
    2. A continuación, ve a Plugins > Automatización
      1. Añade una nueva automatización
        1. Elige Membresía de Grupo de Usuario a través de Insignia
        2. Disparador: Recurrente
          1. Recurrencia: Lo tengo configurado cada 1 hora. Elige lo que tenga sentido para ti.
          2. Elige una fecha de inicio
        3. Opciones de Script:
          1. Insignia: Elige la insignia que creaste arriba
          2. Grupo: Elige el grupo que creaste arriba

Eso es todo. Ahora deberías tener un sistema que asegure que los miembros hayan aceptado las reglas de la categoría antes de que puedan publicar en ella.

Mi próxima exploración es ver si hay una manera de ocultar todos los temas excepto las reglas a cualquiera que no esté en ese grupo. Pero, este sistema básico es suficiente por ahora.

3 Me gusta