La suppression en masse des sujets depuis /latest ne fonctionne pas comme prévu

Salut tout le monde,

J’utilise actuellement le plugin Suppress category from latest pour masquer les sujets de la page /latest tout en les affichant dans leurs catégories respectives. J’ai environ 200 catégories que je souhaite masquer de /latest, et seulement une dizaine de catégories dont les sujets devraient s’afficher sur la page d’accueil.

Pour y parvenir, j’ai tenté d’exécuter le code suivant dans la console Rails :

Category.all.each do |cat|
  cat.custom_fields["suppress_latest"] = true
  cat.save_custom_fields(true)
end

La commande semble s’exécuter sans erreur (elle renvoie même {"suppress_latest"=>"t"}), mais lorsque je vérifie la page /latest, les sujets de ces catégories sont toujours visibles.

Voici les étapes que j’ai déjà suivies :

  • J’ai exécuté ./launcher rebuild app et ./launcher restart app
  • J’ai confirmé via la console Rails que le champ personnalisé est défini sur "t" pour les catégories concernées
  • J’ai également essayé de vider les caches, mais rien ne semble changer

Il semble que même après avoir défini le champ personnalisé, les sujets de ces catégories s’affichent toujours sur la page d’accueil. Quelqu’un a-t-il rencontré ce problème ou trouvé un moyen de masquer efficacement les sujets de /latest en masse ? Y a-t-il un problème de compatibilité connu avec les sous-catégories, ou le plugin devrait-il utiliser une clé/valeur différente pour la suppression ?

Toute aide ou approche alternative serait grandement appréciée !

Merci !

Un rapide coup d’œil au cœur ne trouve pas suppress_latest dans le code.

Peut-être souhaitez-vous le paramètre du site Mettre toutes les catégories en sourdine par défaut ?

1 « J'aime »

Plugin author here!

Devrait être
cat.custom_fields[:suppress_category_from_latest] = true

Mais… ces valeurs sont également mises en cache dans une variable de classe. La façon la plus simple de gérer cela est de save! également la catégorie (voir ici)

Donc, cela fonctionne

Category.all.each do |cat|
  cat.custom_fields[:suppress_category_from_latest] = true
  cat.save_custom_fields(true)
  cat.save!
end
4 « J'aime »

Salut RGJ,

Merci beaucoup pour vos conseils. J’ai exécuté la commande suivante dans ma console Rails :

Category.all.each do |cat|
  cat.custom_fields[:suppress_category_from_latest] = true
  cat.save_custom_fields(true)
  cat.save!
end

Tout a parfaitement fonctionné ! Mes catégories sont maintenant supprimées avec succès de la page /latest. J’apprécie vraiment votre aide.

Cordialement,

3 « J'aime »

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