最新情報からカテゴリを非表示にし、ダイジェストを設定する適切な方法

こんにちは、

フォーラムの管理者として、すべてのユーザーが特定のカテゴリを購読し、メールリストオプションが有効になっている状態にしたいと考えています。

プロフィールでカテゴリの設定(ウォッチ、トラッキング、ミュート)を試して、データベース内でこれらの設定を確認しようとしました。同じ設定を他のユーザーにも適用したいと考えており、おそらく category_users に関連するものではないかと考えています。

これを達成するために、いくつかのデータを挿入(INSERT)すればよいのでしょうか?

以前は、ダイジェストに特定のカテゴリのみが含まれるようにするために、いくつかのカテゴリを「メールリスト」に設定しようとしましたが、それは誤りでした。この設定ではダイジェストの内容を制御できません。

もしかしたら、ロジックが異なるのでしょうか?目的は以下の通りです:

  • 新しいユーザーに、特定のカテゴリからのダイジェストを強制的に配信する(後でユーザー自身で変更できるようにする)
  • 「最新」ページに特定のカテゴリを表示しない

私のケースに近いトピックを見つけました:Viewing a list of users who are watching a category
ただし、5 年ぶりにこのトピックをアップするべきか確信が持てませんでした。

なぜこれらの設定を使わないのですか?

これでは役に立たないかもしれません。他の100人のユーザーに対して、これをバッチで設定する方法を探しています。

選択すると、全員に変更するか、今後に変更するかを確認するポップアップが表示されます。:+1:

私の解決策を共有させていただきます。

Gavin が指摘したように、UI で必要な設定(ミュートとカテゴリの追跡)をクリックしました。

次に、データベースに接続してカテゴリとユーザーの ID を特定しました。対象となるテーブルは category_usersusers です。

以下の画像に示すように、自分自身(user_id=5)の設定をフィルタリングしました。

次に、ID が 33 と 34 の他の 2 人のユーザーにも同じ設定を適用します。明らかに、テーブル category_users に適切な行を追加する必要があります。

例:

  • カテゴリは 6 つあります:ID は 1, 2, 15, 17, 19, 24。
  • カテゴリ 15 と 17 はミュート。
  • カテゴリ 1, 2, 24 の最初の投稿をウォッチ。
  • カテゴリ 19 をトラッキング。

まず、選択されたカテゴリすべてをミュートセクション(notification_level=0)に挿入するスクリプトを作成しました。

INSERT INTO 
	"category_users" 
	("category_id", "user_id", "notification_level", "last_seen_at") 
VALUES
(24, 34, 0, NULL),
(2,  34, 0, NULL),
(1,  34, 0, NULL),
(19, 34, 0, NULL),
(15, 34, 0, NULL),
(17, 34, 0, NULL),

(24, 33, 0, NULL),
(2,  33, 0, NULL),
(1,  33, 0, NULL),
(19, 33, 0, NULL),
(15, 33, 0, NULL),
(17, 33, 0, NULL);

一度に最大 1000 行を追加できます。

その後、トラッキングと最初の投稿をウォッチするカテゴリの行を更新しました。

-- 最初の投稿をウォッチ
UPDATE "public"."category_users" SET "notification_level"='4' WHERE  "category_id" in (1,2,24);
-- トラッキング
UPDATE "public"."category_users" SET "notification_level"='2' WHERE  "category_id"=19;

これでユーザー設定が更新されました。ミュートされたカテゴリはメインページや最新トピックから非表示になります。

画像

ミュートまたはウォッチされたカテゴリに関するユーザー設定をバッチ編集する別の簡単な方法があれば、お知らせください。