Restauration en masse

Continuant la discussion de Meilleure façon de supprimer temporairement l’accès public aux sujets d’un utilisateur ? :

Serait-il possible d’activer un sélecteur de suppression groupée dans la liste /u/username/deleted-posts ? D’après ce que je peux comprendre, cela nécessiterait un script SQL/rails techniquement très difficile et potentiellement dangereux pour les restaurer par programme.

Pour que cette fonctionnalité soit la plus utile, il serait préférable de différencier les sujets supprimés des réponses supprimées. L’URL existante /u/username/deleted-posts pourrait être conservée, puis complétée par /u/username/deleted-posts/topics et /u/username/deleted-posts/replies.

2 « J'aime »

Les sujets sont déjà supprimés, et je n’ai aucune estimation du moment où l’utilisateur pourrait demander la restauration des sujets, donc je suppose que je peux attendre que la restauration en masse soit implémentée. Je ne pense pas être le seul à trouver cela utile, il y a pas mal de messages ici demandant de l’aide pour le faire.

Cela semble également être un moyen potentiellement plus facile et plus sûr de restaurer programmatiquement les sujets, en supposant que je puisse trouver comment générer la liste des identifiants des sujets supprimés par l’utilisateur :

Cela trouvera les sujets supprimés créés par l’utilisateur_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)

Et il semble que vous puissiez annuler la suppression de messages avec quelque chose comme

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

Et vous feriez quelque chose de similaire pour les sujets.

Si le moment vient d’annuler la suppression de tout cela, ce qui précède devrait suffire à quelqu’un qui connaît un tout petit peu Rails pour pouvoir tout annuler.

Pour information, si vous les aviez déplacés vers une catégorie cachée, il aurait été peut-être un peu plus facile de tout restaurer en masse à la dernière révision. Mais quand aucune de ces choses n’est possible pour vous, je pense que c’est une distinction sans différence.

Enfin, je m’excuse une fois de plus d’avoir traité une demande de fonctionnalité comme un Support. Je pense que je le fais parce que je n’ai aucun pouvoir pour créer des fonctionnalités, mais je peux résoudre des problèmes.

4 « J'aime »

Aucun problème Jay, j’apprécie vraiment. Bien sûr, je préférerais qu’une méthode GUI soit implémentée dans Discourse, mais sinon, j’apprécie vraiment que vous m’ayez guidé à travers cela.

1 « J'aime »

C’est certainement un cas extrême, mais nous essayons de suivre lorsqu’une fonctionnalité est demandée plusieurs fois (surtout par des clients) afin d’avoir une meilleure idée du moment où il faut avancer :slight_smile:

1 « J'aime »