Exclusão em massa de desmarcação

Continuando a discussão de Melhor forma de remover temporariamente o acesso público aos tópicos de um usuário?:

Seria possível habilitar um seletor de exclusão em massa na lista /u/username/deleted-posts? Pelo que pude apurar, isso exigiria um script SQL/rails tecnicamente muito desafiador e potencialmente perigoso para restaurar os posts programaticamente.

Para que este recurso seja mais útil, seria melhor diferenciar entre tópicos excluídos e respostas excluídas. Talvez o URL existente /u/username/deleted-posts pudesse ser mantido, e então adicionar a ele /u/username/deleted-posts/topics e /u/username/deleted-posts/replies.

2 curtidas

Os tópicos já foram excluídos e não tenho uma estimativa de quando o usuário poderá solicitar a restauração dos tópicos, então acho que posso esperar a implementação da exclusão em massa. Não acho que sou o único que acharia isso útil, há vários posts aqui pedindo ajuda para fazer isso.

Isso também parece uma maneira potencialmente mais fácil e segura de restaurar programaticamente, assumindo que eu consiga descobrir como gerar a lista de IDs de tópicos excluídos do usuário:

Isso encontrará tópicos excluídos criados pelo user_id 1.

dts=Topic.with_deleted.where(user_id: 1).where("deleted_at is not null");
dts.pluck(:deleted_at, :id)
dps=Post.with_deleted.where(user_id: 1).where("deleted_at is not null");
dbs.pluck(:deleted_at, :id)

E parece que você pode restaurar posts com algo como

dp=dps.first
dp.deleted_at=nil
dp.deleted_by=nil
dp.save

E você faria algo semelhante para tópicos.

Se chegar a hora de restaurar as coisas, o acima deve ser suficiente para alguém que saiba um pouquinho sobre rails para poder restaurá-los todos.

Só para constar, se você os tivesse movido para uma categoria oculta, teria sido talvez um pouco mais fácil restaurá-los todos em massa para a última revisão. Mas quando nenhuma dessas coisas é possível para você, acho que é uma distinção sem diferença.

Por último, peço desculpas por mais uma vez tratar um pedido de recurso como #suporte. Acho que faço isso porque não tenho poder para criar recursos, mas posso resolver problemas.

4 curtidas

Sem problema algum, Jay, agradeço muito. Claro que eu preferiria se um método de GUI pudesse ser implementado no Discourse, mas se não for possível, agradeço muito por me guiar nisso.

1 curtida

É certamente um caso extremo, mas tentamos acompanhar quando um recurso é solicitado várias vezes (especialmente de clientes) para ter uma ideia melhor de quando avançar :slight_smile:

1 curtida