Editar publicaciones genera notificaciones

No quiero hacer nada demasiado complejo.

Estaba revisando parte del código de esto (gracias @tshenry por el enlace), y no parece que necesite ser tan complicado.

Las menciones de grupo se están activando actualmente aquí (líneas 78-80). La función expand_group_mentions() es un generador encargado de devolver los usuarios que deberían recibir notificaciones de menciones de grupo (respetando políticas como SiteSetting.max_users_notified_per_group_mention).

Eso parece un lugar natural para colocar esta lógica.

En la función create_notification, suprimimos las notificaciones para cualquier persona que ya haya recibido una notificación del mismo tipo. Por eso editar una publicación con una mención de grupo desencadena una notificación para los nuevos miembros del grupo: en realidad se genera una notificación para todos los usuarios del grupo, pero luego se suprime para quienes ya recibieron la notificación.

Estoy sugiriendo algo similar, actualizando la función expand_group_mentions() para que también filtre los grupos que ya tienen un registro en la tabla group_mentions.

Algo así (perdonad mi falta de conocimiento sobre la sintaxis de Ruby):

  def expand_group_mentions(groups, post)
    return unless post.user && groups

    Group.mentionable(post.user, include_public: false).where(id: groups.map(&:id)).each do |group|
      next if group.user_count >= SiteSetting.max_users_notified_per_group_mention

      # Añadir comprobación para grupos ya mencionados
      next if GroupMentions.where(group_id: group.id, post_id: post.id).length > 0

      yield group, group.users
    end

  end

Esto no hace nada por la advertencia JIT, sin embargo.

Tratando de ayudar a resolver esto, hacedme saber si solo estoy siendo molesto… :slight_smile: