デフォルトのナビゲーションメニューカテゴリに指定されているにもかかわらず、サイドパネルにカテゴリが表示されない

2つのカテゴリを設定しました:

  • 特定グループ group_School_A に対して非公開のカテゴリ School_A
  • Trust Level 0 のユーザーに対して非公開のカテゴリ Support

設定の Default navigation menu categoriesSchool_ASupport を指定しましたが、サイドパネルには group_School_A に属するユーザーに対して School_A しか表示されません。

Support にアクセスするには、まだ All categories をクリックして Support を選択する必要があります。

Support カテゴリを group_School_A に対して非公開にしても、同じ問題が発生します。

どこを間違えているのか、理解できる方がいれば教えてください。

よろしくお願いします

どのようにテストしましたか?新しいテストユーザーを作成しましたか?ユーザーは、サイドバーに表示されるカテゴリをカスタマイズすることもできます。これにより、既存のユーザーに新しいデフォルトが適用されない可能性があります。ユーザーが手動でカテゴリを追加することは可能ですか?

確かに、それが問題なのかもしれません。

変更を加える前に作成したダミーユーザーでテストしています。

カテゴリの鉛筆ボタンをクリックすると、両方のカテゴリが表示され、Support は未選択になっています。

では、既存のユーザーに新しい設定を適用するにはどうすればよいのでしょうか?
使用できるAPIはありますか?
ユーザーは1週間前にアカウントを作成したので(カスタマイズの時間がほとんどありません)、サイドバーの問題とカテゴリが表示されない問題に今日初めて気づきました。
ユーザーに操作を依頼しても、大多数は理解せず、残りのユーザーは無視するでしょう…

ありがとうございます!

サイト設定を変更する際、既存のユーザーにもその設定を強制適用するかどうかを選択できます。

したがって、設定から supportschool_a を削除し、既存のユーザーには適用せずに保存するはずです。その後、数分待ってからそれらを再度追加します。今度は、変更を既存のユーザーに適用してください。(ユーザー数が表示されるので心配する必要はありませんが、複数のカテゴリを追加しているため、その数値は正しくない場合があります

こちらにガイドがありますが、これはカスタマイズを上書きし、すべてのユーザーに同じサイドバーを強制適用することに焦点を当てています:https://meta.discourse.org/t/how-to-set-the-same-sidebar-categories-for-all-the-users/402479。

既存のユーザーにすでに適用したと思います。

しかし、もう一度試してみました:

  • default navigation menu categories からすべてのカテゴリを削除すると、既存のユーザーに適用するようプロンプトが表示されました。私は「いいえ」と回答しました。
  • 数分待ちました。
  • カテゴリを再度追加しましたが、今回は既存のユーザーに適用するようプロンプトが表示されませんでした。
  • サイドバーを確認しましたが、Support はまだチェックされていません(ただし存在はしています)。
  • 既存のユーザーに適用するようプロンプトを表示させるために、default navigation menu categories にダミーのカテゴリを追加してみました。今回はプロンプトが表示され、「はい」と回答しました。
  • 再度サイドバーを確認しましたが、Support はまだチェックされていません。

つまり、apply this change historically に何らかの問題があるようです。

追記:default navigation menu categories を空にして、既存のユーザーに適用し、数分待ってからカテゴリを再度追加し、もう一度既存のユーザーに適用してみたら、今回はうまくいきました!

ありがとうございます

ふむ。すべてのユーザーがすでにサイドバーにそのカテゴリを持っている場合、そのオプションが表示されないのは理にかなっていますね。

まず、カテゴリを削除する手順を全員に適用できます。その後、追加操作を実行すると、「既存のユーザーに適用する」モーダルが表示されるはずです。ただし、これは現在フォーラムを利用しているユーザーにとって混乱を招く可能性があります。

また、Data Explorer を使用して現在の設定を確認することもできます。以下のクエリでは、カテゴリとグループを選択し、そのグループの各メンバーがサイドバーにそのカテゴリを持っているかどうかを返します。

-- [params]
-- group_id :group
-- category_id :category

SELECT
    u.id AS user_id,
    CASE WHEN sl.id IS NULL THEN 'No' ELSE 'Yes' END AS category_added_to_sidebar
FROM users u
JOIN group_users gu ON gu.user_id = u.id
LEFT JOIN sidebar_section_links sl
    ON sl.user_id = u.id
    AND sl.linkable_type = 'Category'
    AND sl.linkable_id = :category
WHERE gu.group_id = :group
ORDER BY category_added_to_sidebar ASC

結果は以下のようになります。

最近参加したユーザーは数名しかいないため、カテゴリを削除して再適用するのは問題ではありませんでした(おそらく誰もサイドパネルをカスタマイズする暇がなかったと思います)。

今ではうまく動作しているようです。サポートありがとうございます!