Fermeture massive des sujets existants plus anciens que x ?

Salut,

J’ai migré un forum de XenForo vers Discourse, et il y a maintenant beaucoup d’anciens messages que j’aimerais fermer. Y a-t-il un moyen de dire “fermer tous les sujets plus anciens que x mois” ? J’ai déjà configuré cela dans la catégorie, mais cela ne fonctionne que pour les nouveaux sujets.

2 « J'aime »

Vous pourriez essayer d’utiliser ce paramètre dans les paramètres de catégorie :

Je ne suis pas sûr si cela fermera les éléments rétroactivement, mais cela vaut la peine d’essayer.

Ma autre idée était de faire un filtre avancé et de définir une date antérieure :

À partir de là, vous pouvez utiliser des actions groupées sur les sujets qui apparaissent.

4 « J'aime »

Vous pouvez clôturer des sujets en masse avec Performing bulk actions as a moderator
Mais selon le nombre de sujets que vous souhaitez clôturer, Administrative Bulk Operations pourrait être le meilleur choix.

7 « J'aime »

Oui, il y aurait quelque chose de similaire lié, comment puis-je le limiter à une catégorie ?

2 « J'aime »

Vous pouvez trouver l’ID de la catégorie, puis l’utiliser comme condition supplémentaire dans la commande. Par exemple, fermez tous les sujets ouverts dans la catégorie ‘general’ qui ont été créés avant le 24 septembre :

cat_id = Category.find_by_slug('general').id
Topic.where(closed: false).where("created_at < '2024-09-24'").where(category_id: cat_id).find_each do |topic|
  topic.update_status('closed', true, Discourse.system_user)
end

Ce type d’opérations me rend toujours un peu nerveux. Assurez-vous de créer une sauvegarde de votre base de données avant de les exécuter au cas où quelque chose tournerait mal. Il pourrait également être judicieux d’effectuer une sorte de vérification préliminaire pour vous assurer que vous opérez sur les bonnes données. Une façon de le faire serait de retourner le count des sujets sur lesquels l’opération sera effectuée. Par exemple :

Topic.where(closed: false).where("created_at < '2024-09-24'").where(category_id: cat_id).count
4 « J'aime »

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.