Erreur 502 en essayant de sauvegarder l'ordre des catégories

Bonjour ! J’ai beaucoup de catégories (environ 2000). Maintenant, je dois changer l’ordre d’une seule catégorie. La fonction standard « Réorganiser les catégories » échoue avec une erreur 502 après 1 minute. Comment résoudre ce problème ? Merci !

Avez-vous réussi à résoudre ce problème ? Si vous rencontrez toujours des erreurs de dépassement de délai, vous devrez peut-être définir la position de la catégorie directement depuis la console Rails du site. Cela semble toutefois être une opération assez compliquée à réaliser avec 2000 catégories.

Non, je n’ai pas encore trouvé la solution.

Comment puis-je faire cela ? Je ne connais pas du tout la console Rails.

J’ai examiné cela un peu plus en détail. Avec 2000 catégories, l’opération sera assez complexe : modifier la position d’une catégorie affectera la position de toutes les catégories qui la suivent. Je suis réticent à suggérer de procéder au changement via la console.

Techniquement, je ne suis pas certain qu’il s’agisse d’un bug. Discourse permet de créer plus de 2000 catégories, mais l’interface utilisateur n’est pas conçue pour gérer un tel nombre de catégories. Avez-vous déjà pu réorganiser des catégories par le passé sans rencontrer de problèmes ?

2 « J'aime »

Voulez-vous qu’ils soient dans l’ordre alphabétique ? J’ai déjà eu un script pour trier les catégories et sous-catégories par ordre alphabétique.

Je suppose que quelqu’un a déjà essayé de vous convaincre d’utiliser des balises à la place ? C’est probablement la première des problèmes que vous rencontrerez avec autant de catégories.

2 « J'aime »

Non, je rencontre ce problème pour la première fois et je ne l’avais jamais eu auparavant. J’ai créé ce nombre de catégories via le script dans l’interface normale. Comment puis-je le faire via la console ?

J’utilise les tags à une autre fin et je ne peux pas les mélanger avec d’autres substances. Maintenant, je dois déplacer une sous-catégorie vers le haut. Je les avais triés manuellement avant la création. La seule solution est d’utiliser une console. Avez-vous des idées pour le faire ?

Vous feriez quelque chose comme

cd /var/discourse
./launcher enter app
rails c

pour accéder à la console. Vous feriez ensuite quelque chose.

Si vous ne les comprenez pas, alors vous ne voulez probablement pas le faire vous-même.

Voici des scripts qui, à ma connaissance, fonctionnaient autour du 12 janvier 2018. Je ne garantis pas qu’ils fonctionnent, mais je ne vois pas pourquoi ils ne fonctionneraient pas. Prenez des sauvegardes et allumez une bougie. :wink:

# Trier alphabétiquement toutes les catégories correspondant à la recherche et leurs sous-catégories

def sort_matching_categories_and_subcategories(search)
  categories = Category.where("name like ?", search)
  position = 100
  categories.order(:name).each do |cat|
    position += 5
    cat.position = position
    cat.save!()
    c_position = 0
    children = Category.where(:parent_category_id=>cat.id)
    children.order(:name).each do |c|
      c_position += 5
      c.position = c_position
      c.save!()
    end
  end
end


# Trier alphabétiquement les sous-catégories d'une seule catégorie correspondant à la recherche
def sort_matching_subcategories(search)
  categories = Category.where("name like ?", search)
  if categories.count > 1
    puts "Plus d'une catégorie trouvée"
  end
  categories.order(:name).each do |cat|
    c_position = 5
    children = Category.where(:parent_category_id=>cat.id)
    children.order(:name).each do |c|
      c_position += 5
      c.position = c_position
      c.save!()
    end
  end
end

Si vous avez besoin de plus d’aide et que vous avez un budget, consultez Redirecting… ou envoyez-moi un e-mail.

J’espère que cela vous aidera !

2 « J'aime »