Asignar una insignia no personalizada a través de la consola

:bookmark: Esta guía explica cómo otorgar una insignia no personalizada a través de la consola de Discourse.

:person_raising_hand: Nivel de usuario requerido: Administrador del sistema

:warning: Se requiere acceso a la consola

En escenarios específicos, es posible que necesite otorgar manualmente una insignia predeterminada de Discourse a un usuario desde la consola. Por ejemplo, un usuario podría no recibir la insignia “Enthusiast” (Entusiasta) por visitar un foro durante 10 días consecutivos, posiblemente debido a la diferencia de zona horaria entre la hora local del usuario y la hora UTC del servidor.

Esta documentación proporciona una guía paso a paso para otorgar manualmente insignias no personalizadas utilizando la consola de Rails, asegurando que estas insignias no sean revocadas automáticamente.

Verificación de insignias revocables automáticamente

Antes de otorgar una insignia, asegúrese de que no sea revocada automáticamente por el sistema. Ejecute el siguiente comando en la consola de Rails para obtener una lista de dichas insignias:

Badge.where(auto_revoke: false).pluck(:name)

Este comando mostrará una lista de insignias no revocables automáticamente, incluyendo:

  • “First Flag” (Primera bandera)
  • “Thank You” (Gracias)
  • “Gives Back” (Devuelve)
  • “Empathetic” (Empático)
  • “Out of Love” (Por amor)
  • “Higher Love” (Amor superior)
  • “Crazy in Love” (Loco de amor)
  • “Aficionado”
  • “Devotee” (Devoto)
  • “Enthusiast” (Entusiasta)
  • “Reader” (Lector)
  • “Anniversary” (Aniversario)
  • “Appreciated” (Apreciado)
  • “Respected” (Respetado)
  • “Admired” (Admirado)

Otorgar una insignia

Para otorgar una insignia de esta lista, siga estos pasos:

  1. Buscar al usuario por nombre de usuario:

    Ejecute el siguiente comando, reemplazando enthusiastic_user con el nombre de usuario real:

    user = User.find_by(username: 'enthusiastic_user')
    
  2. Localizar la insignia por nombre:

    Por ejemplo, para encontrar la insignia “Enthusiast” (Entusiasta), utilice:

    badge = Badge.find_by(name: "Enthusiast")
    
  3. Otorgar la insignia al usuario:

    Finalmente, otorgue la insignia al usuario con este comando:

    BadgeGranter.grant(badge, user)
    
17 Me gusta