Restringere la pubblicazione in una categoria finché non mettono "mi piace" a un argomento

Nel caso in cui qualcun altro sia interessato a farlo, ecco una breve descrizione di ciò che ho fatto:

  1. Per prima cosa, devi abilitare Badge SQL tramite la CLI del tuo server Discourse:
./launcher enter app
rails c
SiteSetting.enable_badge_sql = true
  1. Successivamente, trova l’ID dell’argomento con cui i membri devono interagire per ottenere il badge. Nella mia istanza, l’ID dell’argomento è 117
  2. Crea il tuo Badge Personalizzato:
    1. Admin > Badges > New
    2. Dai al badge il nome che preferisci (es. B/S/T Rule Reader)
    3. Scegli un tipo di badge, un’icona e fornisci una descrizione
    4. Se hai seguito il Punto 1, vedrai una casella di query in cui puoi digitare una query SQL. Incolla questa query (cambia p.topic_id = 117 con l’ID del tuo argomento):
      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. Assicurati che Run revocation query daily (Esegui query di revoca giornalmente) e Query targets posts (Query prende di mira i post) siano entrambi selezionati.
    6. Il trigger deve essere impostato su When a user acts on post (Quando un utente agisce su un post)
  3. Ora creiamo l’Automazione
    1. Per prima cosa crea un nuovo gruppo a cui verranno aggiunti i membri. Il mio si chiama semplicemente bst_rules_agreed ed è impostato in modo che solo i proprietari del gruppo e i moderatori possano vederne l’appartenenza. Non necessita di effetti di Livello di Fiducia.
    2. Successivamente, vai su Plugins > Automation
      1. Aggiungi una nuova automazione
        1. Scegli User Group Membership Through Badge (Appartenenza al gruppo utente tramite badge)
        2. Trigger: Recurring (Ricorrente)
          1. Recurrence: Io l’ho impostato ogni 1 ora. Scegli ciò che ha senso per te.
          2. Scegli una data di inizio
        3. Script Options:
          1. Badge: Scegli il badge che hai creato sopra
          2. Group: Scegli il gruppo che hai creato sopra

Questo è tutto. Ora dovresti avere un sistema che assicuri che i membri abbiano accettato le regole della categoria prima di poter pubblicare in quella categoria.

La mia prossima esplorazione è vedere se c’è un modo per nascondere tutti gli argomenti tranne le regole a chiunque non faccia parte di quel gruppo. Ma, questo sistema di base è sufficiente per ora.

3 Mi Piace