@JammyDodger がリンクしたトピック以外にも、同様の機能に関するリクエストがいくつかありました。
- Hierarchical group membership (groups inside groups)
- Parent groups and sub-groups
- https://meta.discourse.org/t/creating-subgroups/200812
また、グループを階層的に表示できるようにするリクエストもありました。
これは、Automationスクリプトを追加することがこの問題に対処する最善の方法なのか、それともDiscourseのコアグループコードに追加すべき機能なのかを確認するためにメモしています。
個人的にこれを面白半分でいじっていました。これはZapierで行った最近の作業とも少し関連しています。この投稿の残りは無視しても構いません。
Automationスクリプトが適切なアプローチであると仮定すると、唯一の障害は、Automationプラグインの group コンポーネントが単一のグループしか受け付けないことです。したがって、group コンポーネントを複数のグループを受け入れるように更新するか、新しい groups コンポーネントを追加する必要があります。テストのために、ローカル開発ブランチに groups コンポーネントを追加しました。それが配置されたら:
サブグループのいずれかに追加されたときに、ユーザーを親グループに追加します。
リストされたすべてのサブグループから削除された場合、ユーザーを親グループから削除します。
参考になれば、トリガーとスクリプトはプラグインにあります:automation-script-example/plugin.rb at main · scossar/automation-script-example · GitHub コンポーネントが https://github.com/discourse/discourse-automation/tree/main/assets/javascripts/discourse/components/fields に追加されたことを前提としていることに注意してください。

