Ignorar usuários inalterados para edição em massa de emblemas

Atualmente, a edição em massa de emblemas enquanto os remove de detentores anteriores resulta em pessoas tendo um emblema removido e imediatamente concedido novamente, se estiverem na interseção de detentores anteriores e futuros.

Isso resulta em uma experiência de usuário confusa, pois os usuários recebem uma notificação sobre o recebimento do emblema, embora nada tenha mudado.

Além disso, isso entra em conflito com um de nossos casos de uso: gostaríamos de descartar emblemas obsoletos e conceder novos, passando a lista atualizada de detentores, enquanto mantemos os outros detentores e a data de concessão inalteradas.

Em termos de funcionalidade, a mudança seria uma melhoria estrita: ao carregar uma lista vazia primeiro, o comportamento antigo é recuperado.

1 curtida

Ao falar em ‘passar a lista atualizada’ e ‘fazer upload de uma lista vazia’, parece que você está trabalhando no console do Rails, talvez com uma lista de users.id?

Se for esse o caso, ajudaria obter a lista dos atuais titulares do distintivo para que você possa excluí-los das suas operações de remoção/concessão?

(Consulta do explorador de dados)
-- [params]
-- badge_id :badge

SELECT
    u.id AS user_id
FROM user_badges ub
JOIN users u  ON u.id = ub.user_id
JOIN badges b ON b.id = ub.badge_id
WHERE ub.badge_id = :badge

Com essa lista exportada, talvez algumas consultas e scripts possam:

  1. Encontrar a interseção entre os atuais titulares do distintivo e sua lista de ‘futuros titulares’.
  2. Remover esses usuários da interseção da sua lista de ‘futuros titulares’.
  3. Revogar o distintivo de qualquer usuário não presente na interseção.
  4. Fazer upload da lista editada de ‘futuros titulares’ para conceder o distintivo apenas aos novos titulares.

(Há até mesmo uma possibilidade de fazer tudo isso dentro do Rails, mas não sou muito forte nessa área.)

Não? Existe um formulário de premiação em massa na UX de gerenciamento de badges, que estou utilizando.

Oof, isso é um pouco embaraçoso, eu tinha perdido a adição de prêmio em massa.

Talvez seu recurso fosse outra opção no upload, algo nessa linha?

1 curtida