La cantidad solucionada en el resumen muestra valores incorrectos

Hola a todos:

Después de actualizar nuestra instancia de Discourse, aparentemente tenemos cantidades incorrectas de “resueltos” al ver los resúmenes de perfil. Ejemplo:

Ya noté que hubo un par de cambios últimamente, incluido un error importante:

Las cantidades correctas obviamente todavía están disponibles, ¿así que probablemente sucedió algo al migrar los datos a las nuevas tablas?

1 me gusta

Gracias por escribir. Le echaré un vistazo.

1 me gusta

Hay algunas discrepancias en el recuento de soluciones en Discourse, ya que estábamos incluyendo temas y publicaciones que ya han sido eliminadas.

Antes de la migración, indicábamos:

John tiene 27 soluciones porque la gente marcó su publicación como solución 27 veces.

Esto se almacena en la tabla UserActions.

Después de la migración, ahora contamos:

John tiene 20 soluciones porque hay 20 temas donde sus publicaciones son soluciones.

Esto se almacena en la tabla SolvedTopics y tiene un enlace directo a un tema existente y no eliminado.

Hay una diferencia sutil aquí: en el primer escenario, no había validaciones para verificar si la publicación de la solución o su tema aún existían.

Consultaré con nuestro equipo cuál es el mejor número para mostrar. Personalmente, me inclino por contar las soluciones para los temas que aún existen.

3 Me gusta

Estoy bastante seguro de que este no puede ser el problema, ya que solo causaría menos números en lugar de más en algunos casos, ¿correcto? Tengo otro ejemplo para ti:
-> Incorrecto: Profile - SGS - Garuda Linux Forum
-> Correcto:
La imagen muestra una sección de perfil de usuario que indica que el usuario se unió el 15 de abril de 2020, ha leído 600 horas de contenido y publicó hace 4 horas, con una racha actual de 5 días consecutivos. (Subtitulado por IA)

Me parece imposible que este mecanismo de conteo pueda duplicar la cantidad de publicaciones resueltas. Además de eso (por supuesto, no confirmado), dudo mucho que el número de publicaciones eliminadas fuera tan alto en mi ejemplo anterior.

¡Gracias!

Hmmm sí, 485 y 90 están demasiado separados.

Creo que acabo de encontrar el error (aunque la afirmación sobre la discrepancia que mencioné anteriormente sigue siendo cierta) –

En la implementación anterior, el recuento de soluciones en el resumen de John se cuenta por el número de veces que alguien marcó la publicación de John como solución

  def solved_count
    UserAction.where(user: @user).where(action_type: UserAction::SOLVED).count
  end

En la nueva implementación, el recuento de soluciones en el resumen de usuario de John es el número de veces que John marcó una publicación como solución

  def solved_count
    DiscourseSolved::SolvedTopic.where(accepter: @user).count
  end

Esto explica la gran diferencia. “Recuento de soluciones” cambió de definición de “cuántas veces respondiste” a “cuántas veces aceptaste”.

Corregiré el error, ¡gracias de nuevo por el informe!

También actualizaré los diferentes métodos de conteo utilizados en la ventana emergente del perfil y el resumen del usuario.

4 Me gusta

Felicitaciones a @ondrej por mencionarme también Solution badge not working?. Parece que algunas discrepancias ya estaban ocurriendo antes de esta migración. Lo bueno es que migraremos a un número más consistente en Discourse y nuestros plugins.

4 Me gusta

¡Maravilloso, muchas gracias! :slight_smile:

4 Me gusta

Esto ahora está arreglado y estandarizado: FIX: Standardise the definition of what a solution is by nattsw · Pull Request #352 · discourse/discourse-solved · GitHub

4 Me gusta

Este tema se cerró automáticamente después de 2 días. Ya no se permiten nuevas respuestas.