Recompensar en masa una insignia a un grupo de usuarios

Las insignias son una excelente manera de reconocer a alguien que está haciendo un buen trabajo. Discourse ahora permite otorgar una insignia a un conjunto de usuarios.

Si vas a la sección de insignias en el panel de administración, notarás que ahora hay un nuevo botón llamado “Otorgar en masa” disponible junto al botón “Nuevo”:

Screen Shot 2020-01-15 at 11.34.31

Al hacer clic en él, se te pedirá que selecciones una insignia y comiences:

Selecciona la insignia que deseas otorgar y sube un archivo CSV que contenga una lista de correos electrónicos o nombres de usuario (uno por línea).

Luego, se te mostrará este mensaje:

Discourse encontrará los usuarios coincidentes, les otorgará la insignia y les enviará una notificación.

48 Me gusta

Esto es genial.

Propongo cambiar esta redacción por “otorgar una insignia a un conjunto de usuarios”, ya que grupo tiene un significado específico en Discourse y un montón de direcciones de correo electrónico aleatorias en un CSV no lo es :wink:.

23 Me gusta

Muy bien, esto será útil :slight_smile:

5 Me gusta

¡Ay, sí, eso es muy útil. Gracias :slight_smile:.

3 Me gusta

Esto es genial, gracias por la función :slight_smile:

5 Me gusta

Sería más fácil seleccionarlos desde una lista de usuarios si fuera posible. De todos modos, es una buena función.

5 Me gusta

Sí, esa es mi idea ideal. :grin:

Solo haz clic en los usuarios a los que quieres premiar.

2 Me gusta

Lo siento, pero no estoy 100% seguro de esto. La terminología que conozco es:

encapsulador, delimitador (el separador) y terminador.

El encapsulador suele ser comillas.
El delimitador suele ser una coma.
El terminador suele ser un salto de línea.

Por ejemplo:

"1", "Bob", "rkelly@gmail.com", "CA" 
"2", "Carol", "counselor@hotmail.com", "CA" 
"2", "Ted", "tman@yahoo.com", "FL" 

Dudo que te refieras a:

rkelly@gmail.com 
, 
counselor@hotmail.com 
, 
tman@yahoo.com 
1 me gusta

Lo que quise decir fue:

rkelly@gmail.com,
counselor@hotmail.com,
tman@yahoo.com

He editado el mensaje.

6 Me gusta

Al agregar usuarios en masa a un grupo, el sistema espera una lista de nombres de usuario. Al agregar usuarios en masa a una insignia, el sistema espera un archivo .csv con direcciones de correo electrónico.

Personalmente, prefiero la lista de nombres de usuario, ya que es mucho más fácil obtenerlos de los foros sin tener que pasar por trámites administrativos, y tengo algunos trucos en Excel que pueden generar una lista lista para copiar y pegar. Solía asignar insignias en masa agregando una lista a un grupo temporal y luego modificando la consulta de la insignia para que se asignara a todo ese grupo. Cuando apareció la opción “otorgar una insignia a un conjunto de usuarios”, esperé poder eliminar un paso…

¿Existe alguna forma de que el método de lista de usuarios sea una alternativa válida para asignar insignias en masa?

8 Me gusta

Estoy de acuerdo en que deberíamos admitir ambas opciones.

Si el primer elemento de la lista contiene un “@”, importar por correo electrónico; de lo contrario, importar por nombre de usuario.

Además, podríamos ser un poco más flexibles con el formato de esa lista.

Podríamos simplemente exigir que los correos electrónicos o nombres de usuario estén en líneas separadas y luego hacer un split("\n"), eliminar las líneas vacías, eliminar cualquier “,” al final y eliminar cualquier par de comillas simples o dobles (por ejemplo, gsub(/^['"]|['"]$/, "")).

9 Me gusta

Sé que es difícil y que empieza a correr el riesgo de desviarse del objetivo principal, pero me pregunto si con el tiempo la interfaz de administración podría aspirar a una mayor consistencia en todas las operaciones masivas de administración. Por ejemplo, al:

  1. Otorgar insignias en masa: Seleccionar insignia y luego subir un CSV con las direcciones de correo electrónico de los usuarios.

  2. Agregar usuarios a un grupo en masa: Seleccionar grupo y luego pegar una lista de nombres de usuario o correos electrónicos, uno por línea.

  3. Invitar usuarios a Discourse en masa: Subir un CSV que contenga las direcciones de correo electrónico de los usuarios (especificando opcionalmente los grupos a los que se les debe agregar y la publicación inicial que se les mostrará).

Claramente, estos tienen áreas de similitud, pero también áreas de clara disparidad donde no están haciendo lo mismo. No sé qué tan fácil sea trabajar hacia un paradigma de interfaz consistente para todas las acciones masivas de administración, pero pensé que sería bueno plantear el tema aquí, ya que se está discutiendo.

De las tres variantes, diría que la más agradable en este momento es “Agregar en masa a un grupo: Pegar una lista de nombres de usuario o correos electrónicos, uno por línea”.

Con bastante frecuencia quiero invitar a varios usuarios (digamos de 5 a 10) y el método de invitación uno por uno es un poco irritantemente lento, pero el método de invitación mediante CSV es un poco engorroso y requiere que abra otro programa o que edite el CSV manualmente. Incluso si se mantuviera la carga de CSV para las invitaciones en masa muy grandes, sería genial tener un diálogo de “Invitar usuarios” similar al de “Agregar en masa a un grupo”. Por supuesto, solo podría aceptar direcciones de correo electrónico, una por línea, pero eso estaría bien.

8 Me gusta

¡Gracias a todos por los comentarios! :slight_smile:

Hemos agregado soporte para nombres de usuario aquí:

https://review.discourse.org/t/feature-support-uploading-a-csv-with-either-user-emails-or-usernames-8971/9183

13 Me gusta

Aunque aún no es tan sencillo como pegar una lista de nombres de usuario en un cuadro, es un gran paso adelante en comparación con necesitar correos electrónicos. ¿Hay planes para unificar el manejo masivo de agregar usuarios a grupos o insignias? No soy programador, pero eso suena como código reutilizable para mí :slight_smile:

2 Me gusta

¿Es posible otorgar una insignia a los usuarios varias veces con esto? Según mis propias pruebas, parece que no es compatible.

Otorgar una insignia en masa a una lista de usuarios no concede una segunda vez a quienes ya la tenían.

1 me gusta

Si la casilla “Puede otorgarse varias veces” de la insignia está marcada (se encuentra en la sección inferior de la página de administración de insignias), deberías poder otorgar la insignia varias veces de esta manera.

3 Me gusta

Lo tengo activado, pero con una importación CSV (incluso solo una lista de nombres de usuario de personas que ya tienen la insignia) no se vuelve a otorgar. Tengo que otorgar la insignia manualmente al usuario para que aparezca como otorgada múltiples veces.

2 Me gusta

¿Puedes otorgar una insignia manualmente a solo una o dos personas en lugar de subir un archivo CSV?

Por alguna razón, la insignia de “entusiasta”, que se otorga por iniciar sesión durante 10 días consecutivos, no funciona para alguien que ha iniciado sesión durante 12 días consecutivos.

1 me gusta

Creo que esa insignia es bastante fiable, pero a veces la diferencia entre las zonas horarias y la UTC puede hacer que parezca lo contrario.

No creo que puedas conceder esa insignia manualmente en este momento, pero crear un csv con el nombre de usuario o los nombres de usuario solo lleva uno o dos segundos. Acabo de hacer una prueba usando Google Sheets en mi teléfono y fue muy rápido. :+1:

6 Me gusta

Solo resalto esta publicación, porque no estaba muy claro en el OP cómo formatear el csv correctamente.

3 Me gusta